init
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
package transformer
|
||||
|
||||
import (
|
||||
"apskel-pos-be/internal/constants"
|
||||
"apskel-pos-be/internal/contract"
|
||||
"apskel-pos-be/internal/models"
|
||||
)
|
||||
|
||||
func CreateUserRequestToModel(req *contract.CreateUserRequest) *models.CreateUserRequest {
|
||||
return &models.CreateUserRequest{
|
||||
OrganizationID: req.OrganizationID,
|
||||
OutletID: req.OutletID,
|
||||
Name: req.Name,
|
||||
Email: req.Email,
|
||||
Password: req.Password,
|
||||
Role: constants.UserRole(req.Role),
|
||||
Permissions: req.Permissions,
|
||||
}
|
||||
}
|
||||
|
||||
func UpdateUserRequestToModel(req *contract.UpdateUserRequest) *models.UpdateUserRequest {
|
||||
modelReq := &models.UpdateUserRequest{
|
||||
OutletID: req.OutletID,
|
||||
IsActive: req.IsActive,
|
||||
}
|
||||
|
||||
if req.Name != nil {
|
||||
modelReq.Name = req.Name
|
||||
}
|
||||
|
||||
if req.Email != nil {
|
||||
modelReq.Email = req.Email
|
||||
}
|
||||
|
||||
if req.Role != nil {
|
||||
role := constants.UserRole(*req.Role)
|
||||
modelReq.Role = &role
|
||||
}
|
||||
|
||||
if req.Permissions != nil {
|
||||
modelReq.Permissions = req.Permissions
|
||||
}
|
||||
|
||||
return modelReq
|
||||
}
|
||||
|
||||
func ChangePasswordRequestToModel(req *contract.ChangePasswordRequest) *models.ChangePasswordRequest {
|
||||
return &models.ChangePasswordRequest{
|
||||
CurrentPassword: req.CurrentPassword,
|
||||
NewPassword: req.NewPassword,
|
||||
}
|
||||
}
|
||||
|
||||
// Model to Contract conversions
|
||||
func UserModelToResponse(user *models.User) *contract.UserResponse {
|
||||
return &contract.UserResponse{
|
||||
ID: user.ID,
|
||||
OrganizationID: user.OrganizationID,
|
||||
OutletID: user.OutletID,
|
||||
Name: user.Name,
|
||||
Email: user.Email,
|
||||
Role: string(user.Role),
|
||||
Permissions: user.Permissions,
|
||||
IsActive: user.IsActive,
|
||||
CreatedAt: user.CreatedAt,
|
||||
UpdatedAt: user.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
func UserModelResponseToResponse(userResponse *models.UserResponse) *contract.UserResponse {
|
||||
return &contract.UserResponse{
|
||||
ID: userResponse.ID,
|
||||
OrganizationID: userResponse.OrganizationID,
|
||||
OutletID: userResponse.OutletID,
|
||||
Name: userResponse.Name,
|
||||
Email: userResponse.Email,
|
||||
Role: string(userResponse.Role),
|
||||
Permissions: userResponse.Permissions,
|
||||
IsActive: userResponse.IsActive,
|
||||
CreatedAt: userResponse.CreatedAt,
|
||||
UpdatedAt: userResponse.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
func UsersToResponses(users []models.User) []contract.UserResponse {
|
||||
responses := make([]contract.UserResponse, len(users))
|
||||
for i, user := range users {
|
||||
response := UserModelToResponse(&user)
|
||||
if response != nil {
|
||||
responses[i] = *response
|
||||
}
|
||||
}
|
||||
return responses
|
||||
}
|
||||
|
||||
func UserResponsesToResponses(userResponses []models.UserResponse) []contract.UserResponse {
|
||||
responses := make([]contract.UserResponse, len(userResponses))
|
||||
for i, userResponse := range userResponses {
|
||||
response := UserModelResponseToResponse(&userResponse)
|
||||
if response != nil {
|
||||
responses[i] = *response
|
||||
}
|
||||
}
|
||||
return responses
|
||||
}
|
||||
Reference in New Issue
Block a user