Added filtered GET request

This commit is contained in:
Fran Jurmanović
2021-05-22 16:51:18 +02:00
parent f9ea943ed9
commit 8d4dc3ff57
6 changed files with 83 additions and 8 deletions

18
pkg/services/services.go Normal file
View File

@@ -0,0 +1,18 @@
package services
import (
"wallet-api/pkg/models"
"wallet-api/pkg/utl/common"
"github.com/go-pg/pg/v10"
)
func FilteredResponse(qry *pg.Query, mdl interface{}, filtered *models.FilteredResponse) {
qry = qry.Limit(filtered.Rpp).Offset((filtered.Page - 1) * filtered.Rpp)
common.GenerateEmbed(qry, filtered.Embed)
count, err := qry.SelectAndCount()
common.CheckError(err)
filtered.TotalRecords = count
filtered.Items = mdl
}

View File

@@ -2,7 +2,6 @@ package services
import (
"wallet-api/pkg/models"
"wallet-api/pkg/utl/common"
"github.com/go-pg/pg/v10"
)
@@ -25,11 +24,9 @@ func (as *TransactionService) New(body *models.NewTransactionBody) *models.Trans
return tm
}
func (as *TransactionService) GetAll(walletId string, embed string) *[]models.Transaction {
func (as *TransactionService) GetAll(walletId string, filtered *models.FilteredResponse) {
wm := new([]models.Transaction)
query := as.Db.Model(wm).Where("? = ?", pg.Ident("wallet_id"), walletId)
common.GenerateEmbed(query, embed).Select()
return wm
FilteredResponse(query, wm, filtered)
}