Update Partner
This commit is contained in:
parent
5396128818
commit
1126410375
@ -107,6 +107,7 @@ type User interface {
|
||||
GetAllUsers(ctx context.Context, req entity.UserSearch) (entity.UserList, int, error)
|
||||
GetAllCustomer(ctx context.Context, req entity.CustomerSearch) (entity.CustomerList, int, 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)
|
||||
UpdateUser(ctx context.Context, user *entity.UserDB) (*entity.UserDB, error)
|
||||
UpdateUserWithTx(ctx context.Context, tx *gorm.DB, user *entity.UserDB) (*entity.UserDB, error)
|
||||
|
||||
@ -190,6 +190,27 @@ func (b *UserRepository) GetUserByID(ctx context.Context, id int64) (*entity.Use
|
||||
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) {
|
||||
var user *entity.UserDB
|
||||
|
||||
|
||||
@ -15,16 +15,20 @@ type PartnerService struct {
|
||||
trx repository.TransactionManager
|
||||
userSvc *users.UserService
|
||||
walletRepo repository.WalletRepository
|
||||
userRepo repository.User
|
||||
}
|
||||
|
||||
func NewPartnerService(repo repository.PartnerRepository,
|
||||
userSvc *users.UserService, repoManager repository.TransactionManager,
|
||||
walletRepo repository.WalletRepository) *PartnerService {
|
||||
walletRepo repository.WalletRepository,
|
||||
userRepo repository.User,
|
||||
) *PartnerService {
|
||||
return &PartnerService{
|
||||
repo: repo,
|
||||
userSvc: userSvc,
|
||||
trx: repoManager,
|
||||
walletRepo: walletRepo,
|
||||
userRepo: userRepo,
|
||||
}
|
||||
}
|
||||
|
||||
@ -106,7 +110,14 @@ func (s *PartnerService) Update(ctx mycontext.Context, req *entity.PartnerUpdate
|
||||
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)
|
||||
if adminUser, err = s.userSvc.UpdateWithTx(ctx, tx, adminUser); err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when creating admin user", zap.Error(err))
|
||||
|
||||
@ -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),
|
||||
OSSSvc: oss.NewOSSService(repo.OSS),
|
||||
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),
|
||||
LicenseSvc: service.NewLicenseService(repo.License),
|
||||
Transaction: transaction.New(repo.Transaction, repo.Wallet, repo.Trx),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user