init project
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
package branch
|
||||
|
||||
import (
|
||||
"context"
|
||||
"furtuna-be/internal/common/logger"
|
||||
"furtuna-be/internal/common/mycontext"
|
||||
"furtuna-be/internal/entity"
|
||||
"furtuna-be/internal/repository"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type BranchService struct {
|
||||
repo repository.Branch
|
||||
}
|
||||
|
||||
func NewBranchService(repo repository.Branch) *BranchService {
|
||||
return &BranchService{
|
||||
repo: repo,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *BranchService) Create(ctx mycontext.Context, branchReq *entity.Branch) (*entity.Branch, error) {
|
||||
branchDB := branchReq.ToBranchDB()
|
||||
branchDB.CreatedBy = ctx.RequestedBy()
|
||||
|
||||
branchDB, err := s.repo.CreateBranch(ctx, branchDB)
|
||||
if err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when create branch", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return branchDB.ToBranch(), nil
|
||||
}
|
||||
|
||||
func (s *BranchService) Update(ctx mycontext.Context, id int64, branchReq *entity.Branch) (*entity.Branch, error) {
|
||||
existingBranch, err := s.repo.GetBranchByID(ctx, id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
existingBranch.ToUpdatedBranch(ctx.RequestedBy(), *branchReq)
|
||||
|
||||
updatedBranchDB, err := s.repo.UpdateBranch(ctx, existingBranch.ToBranchDB())
|
||||
if err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when update branch", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return updatedBranchDB.ToBranch(), nil
|
||||
}
|
||||
|
||||
func (s *BranchService) GetByID(ctx context.Context, id int64) (*entity.Branch, error) {
|
||||
branchDB, err := s.repo.GetBranchByID(ctx, id)
|
||||
if err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when get branch by id", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return branchDB.ToBranch(), nil
|
||||
}
|
||||
|
||||
func (s *BranchService) GetAll(ctx context.Context, search entity.BranchSearch) ([]*entity.Branch, int, error) {
|
||||
branches, total, err := s.repo.GetAllBranches(ctx, search)
|
||||
if err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when get all branches", zap.Error(err))
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
return branches.ToBranchList(), total, nil
|
||||
}
|
||||
|
||||
func (s *BranchService) Delete(ctx mycontext.Context, id int64) error {
|
||||
branchDB, err := s.repo.GetBranchByID(ctx, id)
|
||||
if err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when get branch by id", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
branchDB.SetDeleted(ctx.RequestedBy())
|
||||
|
||||
_, err = s.repo.UpdateBranch(ctx, branchDB)
|
||||
if err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when update branch", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user