init
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"apskel-pos-be/internal/contract"
|
||||
"apskel-pos-be/internal/transformer"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type UserServiceImpl struct {
|
||||
userProcessor UserProcessor
|
||||
}
|
||||
|
||||
func NewUserService(userProcessor UserProcessor) *UserServiceImpl {
|
||||
return &UserServiceImpl{
|
||||
userProcessor: userProcessor,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *UserServiceImpl) CreateUser(ctx context.Context, req *contract.CreateUserRequest) (*contract.UserResponse, error) {
|
||||
modelReq := transformer.CreateUserRequestToModel(req)
|
||||
|
||||
userResponse, err := s.userProcessor.CreateUser(ctx, modelReq)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
contractResponse := transformer.UserModelResponseToResponse(userResponse)
|
||||
return contractResponse, nil
|
||||
}
|
||||
|
||||
func (s *UserServiceImpl) UpdateUser(ctx context.Context, id uuid.UUID, req *contract.UpdateUserRequest) (*contract.UserResponse, error) {
|
||||
modelReq := transformer.UpdateUserRequestToModel(req)
|
||||
|
||||
userResponse, err := s.userProcessor.UpdateUser(ctx, id, modelReq)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
contractResponse := transformer.UserModelResponseToResponse(userResponse)
|
||||
|
||||
return contractResponse, nil
|
||||
}
|
||||
|
||||
func (s *UserServiceImpl) DeleteUser(ctx context.Context, id uuid.UUID) error {
|
||||
return s.userProcessor.DeleteUser(ctx, id)
|
||||
}
|
||||
|
||||
func (s *UserServiceImpl) GetUserByID(ctx context.Context, id uuid.UUID) (*contract.UserResponse, error) {
|
||||
userResponse, err := s.userProcessor.GetUserByID(ctx, id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
contractResponse := transformer.UserModelResponseToResponse(userResponse)
|
||||
|
||||
return contractResponse, nil
|
||||
}
|
||||
|
||||
func (s *UserServiceImpl) GetUserByEmail(ctx context.Context, email string) (*contract.UserResponse, error) {
|
||||
userResponse, err := s.userProcessor.GetUserByEmail(ctx, email)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
contractResponse := transformer.UserModelResponseToResponse(userResponse)
|
||||
|
||||
return contractResponse, nil
|
||||
}
|
||||
|
||||
func (s *UserServiceImpl) ListUsers(ctx context.Context, req *contract.ListUsersRequest) (*contract.ListUsersResponse, error) {
|
||||
page, limit := transformer.PaginationToRequest(req.Page, req.Limit)
|
||||
|
||||
organizationID := uuid.New()
|
||||
userResponses, totalCount, err := s.userProcessor.ListUsers(ctx, organizationID, page, limit)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
contractResponses := transformer.UserResponsesToResponses(userResponses)
|
||||
|
||||
response := transformer.CreateListUsersResponse(contractResponses, totalCount, page, limit)
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
||||
func (s *UserServiceImpl) ChangePassword(ctx context.Context, userID uuid.UUID, req *contract.ChangePasswordRequest) error {
|
||||
modelReq := transformer.ChangePasswordRequestToModel(req)
|
||||
|
||||
return s.userProcessor.ChangePassword(ctx, userID, modelReq)
|
||||
}
|
||||
|
||||
func (s *UserServiceImpl) ActivateUser(ctx context.Context, userID uuid.UUID) error {
|
||||
return s.userProcessor.ActivateUser(ctx, userID)
|
||||
}
|
||||
|
||||
func (s *UserServiceImpl) DeactivateUser(ctx context.Context, userID uuid.UUID) error {
|
||||
return s.userProcessor.DeactivateUser(ctx, userID)
|
||||
}
|
||||
Reference in New Issue
Block a user