improved JWTToken update, added list-users endpoint, debug of getCountries

This commit is contained in:
Daniel Goc
2026-03-30 16:19:26 +02:00
parent 68f4850445
commit d0ce65c287
41 changed files with 654 additions and 284 deletions

View File

@@ -1,4 +1,4 @@
package listProductsRepo
package listRepo
import (
"git.ma-al.com/goc_daniel/b2b/app/config"
@@ -7,25 +7,27 @@ import (
"git.ma-al.com/goc_daniel/b2b/app/model/dbmodel"
"git.ma-al.com/goc_daniel/b2b/app/utils/query/filters"
"git.ma-al.com/goc_daniel/b2b/app/utils/query/find"
"git.ma-al.com/goc_marek/gormcol"
"github.com/WinterYukky/gorm-extra-clause-plugin/exclause"
)
type UIListProductsRepo interface {
GetListing(id_lang uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.ProductInList], error)
type UIListRepo interface {
ListProducts(id_lang uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.ProductInList], error)
ListUsers(id_lang uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.UserInList], error)
}
type ListProductsRepo struct{}
type ListRepo struct{}
func New() UIListProductsRepo {
return &ListProductsRepo{}
func New() UIListRepo {
return &ListRepo{}
}
func (repo *ListProductsRepo) GetListing(id_lang uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.ProductInList], error) {
var listing []model.ProductInList
func (repo *ListRepo) ListProducts(id_lang uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.ProductInList], error) {
var list []model.ProductInList
var total int64
query := db.Get().
Table("ps_product_shop ps").
Table(gormcol.Field.Tab(dbmodel.PsProductShopCols.Active)+" AS ps").
Select(`
ps.id_product AS product_id,
pl.name AS name,
@@ -67,13 +69,53 @@ func (repo *ListProductsRepo) GetListing(id_lang uint, p find.Paging, filt *filt
Order("ps.id_product DESC").
Limit(p.Limit()).
Offset(p.Offset()).
Find(&listing).Error
Find(&list).Error
if err != nil {
return find.Found[model.ProductInList]{}, err
}
return find.Found[model.ProductInList]{
Items: listing,
Items: list,
Count: uint(total),
}, nil
}
func (repo *ListRepo) ListUsers(id_lang uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.UserInList], error) {
var list []model.UserInList
var total int64
query := db.Get().
Table("b2b_customers AS users").
Select(`
users.id AS id,
users.email AS email,
users.first_name AS first_name,
users.last_name AS last_name,
users.role AS role
`)
// Apply all filters
if filt != nil {
filt.ApplyAll(query)
}
// run counter first as query is without limit and offset
err := query.Count(&total).Error
if err != nil {
return find.Found[model.UserInList]{}, err
}
err = query.
Order("users.id DESC").
Limit(p.Limit()).
Offset(p.Offset()).
Find(&list).Error
if err != nil {
return find.Found[model.UserInList]{}, err
}
return find.Found[model.UserInList]{
Items: list,
Count: uint(total),
}, nil
}