Update Partner

This commit is contained in:
aditya.siregar 2024-08-21 23:34:54 +07:00
parent 5396128818
commit 1126410375
4 changed files with 36 additions and 3 deletions

View File

@ -107,6 +107,7 @@ type User interface {
GetAllUsers(ctx context.Context, req entity.UserSearch) (entity.UserList, int, error) GetAllUsers(ctx context.Context, req entity.UserSearch) (entity.UserList, int, error)
GetAllCustomer(ctx context.Context, req entity.CustomerSearch) (entity.CustomerList, int, error) GetAllCustomer(ctx context.Context, req entity.CustomerSearch) (entity.CustomerList, int, error)
GetUserByID(ctx context.Context, id int64) (*entity.UserDB, error) GetUserByID(ctx context.Context, id int64) (*entity.UserDB, error)
GetPartnerAdmin(ctx context.Context, partnerID int64) (*entity.UserDB, error)
GetUserByEmail(ctx context.Context, email string) (*entity.UserDB, error) GetUserByEmail(ctx context.Context, email string) (*entity.UserDB, error)
UpdateUser(ctx context.Context, user *entity.UserDB) (*entity.UserDB, error) UpdateUser(ctx context.Context, user *entity.UserDB) (*entity.UserDB, error)
UpdateUserWithTx(ctx context.Context, tx *gorm.DB, user *entity.UserDB) (*entity.UserDB, error) UpdateUserWithTx(ctx context.Context, tx *gorm.DB, user *entity.UserDB) (*entity.UserDB, error)

View File

@ -190,6 +190,27 @@ func (b *UserRepository) GetUserByID(ctx context.Context, id int64) (*entity.Use
return user, nil return user, nil
} }
func (b *UserRepository) GetPartnerAdmin(ctx context.Context, partnerID int64) (*entity.UserDB, error) {
var user *entity.UserDB
partnerAdmin := 3
query := b.db.Table("users").
Select("users.id, users.email,users.phone_number,users.nik, users.password , users.name, users.status, users.created_at, users.updated_at, ur.role_id, r.role_name, ur.partner_id, b.name as partner_name").
Joins("LEFT JOIN user_roles ur ON users.id = ur.user_id").
Joins("LEFT JOIN roles r ON ur.role_id = r.role_id").
Joins("LEFT JOIN partners b ON ur.partner_id = b.id").
Where("ur.partner_id = ?", partnerID).
Where("ur.role_id = ?", partnerAdmin)
if err := query.Scan(&user).Error; err != nil {
logger.ContextLogger(ctx).Error("error when get user", zap.Error(err))
return nil, err
}
return user, nil
}
func (b *UserRepository) GetUserByEmail(ctx context.Context, email string) (*entity.UserDB, error) { func (b *UserRepository) GetUserByEmail(ctx context.Context, email string) (*entity.UserDB, error) {
var user *entity.UserDB var user *entity.UserDB

View File

@ -15,16 +15,20 @@ type PartnerService struct {
trx repository.TransactionManager trx repository.TransactionManager
userSvc *users.UserService userSvc *users.UserService
walletRepo repository.WalletRepository walletRepo repository.WalletRepository
userRepo repository.User
} }
func NewPartnerService(repo repository.PartnerRepository, func NewPartnerService(repo repository.PartnerRepository,
userSvc *users.UserService, repoManager repository.TransactionManager, userSvc *users.UserService, repoManager repository.TransactionManager,
walletRepo repository.WalletRepository) *PartnerService { walletRepo repository.WalletRepository,
userRepo repository.User,
) *PartnerService {
return &PartnerService{ return &PartnerService{
repo: repo, repo: repo,
userSvc: userSvc, userSvc: userSvc,
trx: repoManager, trx: repoManager,
walletRepo: walletRepo, walletRepo: walletRepo,
userRepo: userRepo,
} }
} }
@ -106,7 +110,14 @@ func (s *PartnerService) Update(ctx mycontext.Context, req *entity.PartnerUpdate
return nil, err return nil, err
} }
if req.AdminUserID != 0 { partnerAdmin, err := s.userRepo.GetPartnerAdmin(ctx, req.ID)
if err != nil {
logger.ContextLogger(ctx).Error("error when get Partner admin", zap.Error(err))
return nil, err
}
if partnerAdmin != nil {
req.AdminUserID = partnerAdmin.ID
adminUser := req.ToUserAdmin(&req.ID) adminUser := req.ToUserAdmin(&req.ID)
if adminUser, err = s.userSvc.UpdateWithTx(ctx, tx, adminUser); err != nil { if adminUser, err = s.userSvc.UpdateWithTx(ctx, tx, adminUser); err != nil {
logger.ContextLogger(ctx).Error("error when creating admin user", zap.Error(err)) logger.ContextLogger(ctx).Error("error when creating admin user", zap.Error(err))

View File

@ -53,7 +53,7 @@ func NewServiceManagerImpl(cfg *config.Config, repo *repository.RepoManagerImpl)
OrderSvc: order.NewOrderService(repo.Order, repo.Product, repo.Crypto, repo.Midtrans, repo.Payment, repo.Trx, repo.Wallet, &cfg.Order), OrderSvc: order.NewOrderService(repo.Order, repo.Product, repo.Crypto, repo.Midtrans, repo.Payment, repo.Trx, repo.Wallet, &cfg.Order),
OSSSvc: oss.NewOSSService(repo.OSS), OSSSvc: oss.NewOSSService(repo.OSS),
PartnerSvc: partner.NewPartnerService( PartnerSvc: partner.NewPartnerService(
repo.Partner, users.NewUserService(repo.User, repo.Branch), repo.Trx, repo.Wallet), repo.Partner, users.NewUserService(repo.User, repo.Branch), repo.Trx, repo.Wallet, repo.User),
SiteSvc: site.NewSiteService(repo.Site), SiteSvc: site.NewSiteService(repo.Site),
LicenseSvc: service.NewLicenseService(repo.License), LicenseSvc: service.NewLicenseService(repo.License),
Transaction: transaction.New(repo.Transaction, repo.Wallet, repo.Trx), Transaction: transaction.New(repo.Transaction, repo.Wallet, repo.Trx),