Update Mitra

This commit is contained in:
aditya.siregar
2024-07-30 14:18:18 +07:00
parent efac497db7
commit f3fbe9ba10
11 changed files with 260 additions and 66 deletions
+28 -4
View File
@@ -76,20 +76,44 @@ func (s *PartnerService) Create(ctx mycontext.Context, partnerReq *entity.Create
return partnerDB.ToPartner(), nil
}
func (s *PartnerService) Update(ctx mycontext.Context, id int64, PartnerReq *entity.Partner) (*entity.Partner, error) {
existingPartner, err := s.repo.GetByID(ctx, id)
func (s *PartnerService) Update(ctx mycontext.Context, req *entity.PartnerUpdate) (*entity.Partner, error) {
existingPartner, err := s.repo.GetByID(ctx, req.ID)
if err != nil {
return nil, err
}
existingPartner.ToUpdatedPartnerData(ctx.RequestedBy(), *req)
existingPartner.ToUpdatedPartner(ctx.RequestedBy(), *PartnerReq)
tx, err := s.trx.Begin(ctx)
if err != nil {
logger.ContextLogger(ctx).Error("error when starting transaction", zap.Error(err))
return nil, err
}
updatedPartnerDB, err := s.repo.Update(ctx, existingPartner.ToPartnerDB())
defer func() {
if r := recover(); r != nil {
s.trx.Rollback(tx)
panic(r)
} else if err != nil {
s.trx.Rollback(tx)
} else {
err = s.trx.Commit(tx).Error
}
}()
updatedPartnerDB, err := s.repo.UpdateWithTx(ctx, tx, existingPartner.ToPartnerDB())
if err != nil {
logger.ContextLogger(ctx).Error("error when update Partner", zap.Error(err))
return nil, err
}
if req.AdminUserID != 0 {
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))
return nil, err
}
}
return updatedPartnerDB.ToPartner(), nil
}