Merge remote-tracking branch 'origin/product-procedures' into front-styles

This commit is contained in:
2026-04-03 09:23:51 +02:00
49 changed files with 1496 additions and 96 deletions

View File

@@ -23,13 +23,13 @@ import (
// JWTClaims represents the JWT claims
type JWTClaims struct {
UserID uint `json:"user_id"`
Email string `json:"email"`
Username string `json:"username"`
Role model.CustomerRole `json:"customer_role"`
CartsIDs []uint `json:"carts_ids"`
LangID uint `json:"lang_id"`
CountryID uint `json:"country_id"`
UserID uint `json:"user_id"`
Email string `json:"email"`
Username string `json:"username"`
Role string `json:"customer_role"`
CartsIDs []uint `json:"carts_ids"`
LangID uint `json:"lang_id"`
CountryID uint `json:"country_id"`
jwt.RegisteredClaims
}
@@ -59,7 +59,7 @@ func (s *AuthService) Login(req *model.LoginRequest) (*model.AuthResponse, strin
var user model.Customer
// Find user by email
if err := s.db.Where("email = ?", req.Email).First(&user).Error; err != nil {
if err := s.db.Preload("Role.Permissions").Where("email = ?", req.Email).First(&user).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, "", responseErrors.ErrInvalidCredentials
}
@@ -144,7 +144,7 @@ func (s *AuthService) Register(req *model.RegisterRequest) error {
Password: string(hashedPassword),
FirstName: req.FirstName,
LastName: req.LastName,
Role: model.RoleUser,
Role: model.Role{},
Provider: model.ProviderLocal,
IsActive: false,
EmailVerified: false,
@@ -422,7 +422,7 @@ func (s *AuthService) RevokeAllRefreshTokens(userID uint) {
// GetUserByID retrieves a user by ID
func (s *AuthService) GetUserByID(userID uint) (*model.Customer, error) {
var user model.Customer
if err := s.db.First(&user, userID).Error; err != nil {
if err := s.db.Preload("Role.Permissions").First(&user, userID).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, responseErrors.ErrUserNotFound
}
@@ -489,7 +489,7 @@ func (s *AuthService) generateAccessToken(user *model.Customer) (string, error)
UserID: user.ID,
Email: user.Email,
Username: user.Email,
Role: user.Role,
Role: user.Role.Name,
CartsIDs: []uint{},
LangID: user.LangID,
CountryID: user.CountryID,

View File

@@ -150,7 +150,7 @@ func (s *AuthService) findOrCreateGoogleUser(info *view.GoogleUserInfo) (*model.
Provider: model.ProviderGoogle,
ProviderID: info.ID,
AvatarURL: info.Picture,
Role: model.RoleUser,
Role: model.Role{},
IsActive: true,
EmailVerified: true,
LangID: 2, // default is english

View File

@@ -0,0 +1,25 @@
package currencyService
import (
"git.ma-al.com/goc_daniel/b2b/app/model"
"git.ma-al.com/goc_daniel/b2b/app/repos/currencyRepo"
)
type CurrencyService struct {
repo currencyRepo.UICurrencyRepo
}
func (s *CurrencyService) GetCurrency(id uint) (*model.Currency, error) {
return s.repo.Get(id)
}
func (s *CurrencyService) CreateCurrencyRate(currency *model.CurrencyRate) error {
return s.repo.CreateConversionRate(currency)
}
func New() *CurrencyService {
repo := currencyRepo.New()
return &CurrencyService{
repo: repo,
}
}

View File

@@ -0,0 +1,20 @@
package customerService
import (
"git.ma-al.com/goc_daniel/b2b/app/model"
"git.ma-al.com/goc_daniel/b2b/app/repos/customerRepo"
)
type CustomerService struct {
repo customerRepo.UICustomerRepo
}
func New() *CustomerService {
return &CustomerService{
repo: customerRepo.New(),
}
}
func (s *CustomerService) GetById(id uint) (*model.Customer, error) {
return s.repo.Get(id)
}

View File

@@ -176,8 +176,8 @@ func (s *MenuService) GetBreadcrumb(root_category_id uint, start_category_id uin
return breadcrumb, nil
}
func (s *MenuService) GetTopMenu(id uint) ([]*model.B2BTopMenu, error) {
items, err := s.routesRepo.GetTopMenu(id)
func (s *MenuService) GetTopMenu(languageId uint, roleId uint) ([]*model.B2BTopMenu, error) {
items, err := s.routesRepo.GetTopMenu(languageId, roleId)
if err != nil {
return nil, err
}

View File

@@ -0,0 +1,27 @@
package productService
import (
"encoding/json"
"git.ma-al.com/goc_daniel/b2b/app/repos/productsRepo"
constdata "git.ma-al.com/goc_daniel/b2b/app/utils/const_data"
)
type ProductService struct {
productsRepo productsRepo.UIProductsRepo
}
func New() *ProductService {
return &ProductService{
productsRepo: productsRepo.New(),
}
}
func (s *ProductService) GetJSON(p_id_product, p_id_lang, p_id_customer, b2b_id_country, p_quantity int) (*json.RawMessage, error) {
products, err := s.productsRepo.GetJSON(p_id_product, constdata.SHOP_ID, p_id_lang, p_id_customer, b2b_id_country, p_quantity)
if err != nil {
return products, err
}
return products, nil
}