From 21a5970dd840874161e2dca60eaa55d982eea2ac Mon Sep 17 00:00:00 2001 From: hanif salafi Date: Sun, 12 May 2024 15:21:52 +0700 Subject: [PATCH] feat: fixing user role --- app/database/entity/user_roles.entity.go | 2 +- .../controller/user_roles.controller.go | 2 +- .../user_roles/mapper/user_roles.mapper.go | 2 +- .../repository/user_roles.repository.go | 11 +++--- .../user_roles/request/user_roles.request.go | 37 +++++++++---------- .../response/user_roles.response.go | 2 +- .../user_roles/service/user_roles.service.go | 17 +-------- docs/swagger/docs.go | 28 +++++--------- docs/swagger/swagger.json | 28 +++++--------- docs/swagger/swagger.yaml | 21 ++++------- 10 files changed, 53 insertions(+), 97 deletions(-) diff --git a/app/database/entity/user_roles.entity.go b/app/database/entity/user_roles.entity.go index 8e8f052..fc9501b 100644 --- a/app/database/entity/user_roles.entity.go +++ b/app/database/entity/user_roles.entity.go @@ -7,9 +7,9 @@ type UserRoles struct { Name string `json:"name" gorm:"type:varchar"` Description string `json:"description" gorm:"type:varchar"` Code string `json:"code" gorm:"type:varchar"` - LevelNumber int `json:"level_number" gorm:"type:int4"` StatusId int `json:"status_id" gorm:"type:int4;default:1"` CreatedById *uint `json:"created_by_id" gorm:"type:int4"` + UserLevelId uint `json:"user_level_id" gorm:"type:int4"` IsActive *bool `json:"is_active" gorm:"type:bool;default:true"` CreatedAt time.Time `json:"created_at" gorm:"default:now()"` UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` diff --git a/app/module/user_roles/controller/user_roles.controller.go b/app/module/user_roles/controller/user_roles.controller.go index 8cebb39..4271176 100644 --- a/app/module/user_roles/controller/user_roles.controller.go +++ b/app/module/user_roles/controller/user_roles.controller.go @@ -53,7 +53,7 @@ func (_i *userRolesController) All(c *fiber.Ctx) error { Name: c.Query("name"), Description: c.Query("description"), Code: c.Query("code"), - LevelNumber: c.Query("levelNumber"), + UserLevelId: c.Query("userLevelId"), StatusId: c.Query("statusId"), } req := reqContext.ToParamRequest() diff --git a/app/module/user_roles/mapper/user_roles.mapper.go b/app/module/user_roles/mapper/user_roles.mapper.go index 18de808..9e02e35 100644 --- a/app/module/user_roles/mapper/user_roles.mapper.go +++ b/app/module/user_roles/mapper/user_roles.mapper.go @@ -12,7 +12,7 @@ func UserRolesResponseMapper(userRolesReq *entity.UserRoles) (userRolesRes *res. Name: userRolesReq.Name, Description: userRolesReq.Description, Code: userRolesReq.Code, - LevelNumber: userRolesReq.LevelNumber, + UserLevelId: userRolesReq.UserLevelId, StatusId: userRolesReq.StatusId, CreatedById: userRolesReq.CreatedById, IsActive: userRolesReq.IsActive, diff --git a/app/module/user_roles/repository/user_roles.repository.go b/app/module/user_roles/repository/user_roles.repository.go index 751af15..8b5308a 100644 --- a/app/module/user_roles/repository/user_roles.repository.go +++ b/app/module/user_roles/repository/user_roles.repository.go @@ -19,7 +19,7 @@ type userRolesRepository struct { type UserRolesRepository interface { GetAll(req request.UserRolesQueryRequest) (userRoless []*entity.UserRoles, paging paginator.Pagination, err error) FindOne(id uint) (userRoles *entity.UserRoles, err error) - Create(userRoles *entity.UserRoles) (userRolesReturn *entity.UserRoles, err error) + Create(userRoles *entity.UserRoles) (err error) Update(id uint, userRoles *entity.UserRoles) (err error) Delete(id uint) (err error) } @@ -47,8 +47,8 @@ func (_i *userRolesRepository) GetAll(req request.UserRolesQueryRequest) (userRo if req.Code != nil { query = query.Where("code = ?", req.Code) } - if req.LevelNumber != nil { - query = query.Where("level_number = ?", req.LevelNumber) + if req.UserLevelId != nil { + query = query.Where("user_level_id = ?", req.UserLevelId) } if req.StatusId != nil { query = query.Where("status_id = ?", req.StatusId) @@ -84,9 +84,8 @@ func (_i *userRolesRepository) FindOne(id uint) (userRoles *entity.UserRoles, er return userRoles, nil } -func (_i *userRolesRepository) Create(userRoles *entity.UserRoles) (userRolesReturn *entity.UserRoles, err error) { - result := _i.DB.DB.Create(userRoles) - return userRoles, result.Error +func (_i *userRolesRepository) Create(userRoles *entity.UserRoles) (err error) { + return _i.DB.DB.Create(userRoles).Error } func (_i *userRolesRepository) Update(id uint, userRoles *entity.UserRoles) (err error) { diff --git a/app/module/user_roles/request/user_roles.request.go b/app/module/user_roles/request/user_roles.request.go index ee89c7e..acafa22 100644 --- a/app/module/user_roles/request/user_roles.request.go +++ b/app/module/user_roles/request/user_roles.request.go @@ -15,18 +15,17 @@ type UserRolesQueryRequest struct { Name *string `json:"name"` Description *string `json:"description"` Code *string `json:"code"` - LevelNumber *int `json:"levelNumber"` + UserLevelId *int `json:"userLevelId"` StatusId *int `json:"statusId"` Pagination *paginator.Pagination `json:"pagination"` } type UserRolesCreateRequest struct { - Name string `json:"name" validate:"required"` - Description string `json:"description" validate:"required"` - Code string `json:"code" validate:"required"` - LevelNumber int `json:"levelNumber" validate:"required"` - StatusId int `json:"statusId" validate:"required"` - UserLevelIds []int `json:"userLevelIds" validate:"required"` + Name string `json:"name" validate:"required"` + Description string `json:"description" validate:"required"` + Code string `json:"code" validate:"required"` + UserLevelId uint `json:"userLevelId" validate:"required"` + StatusId int `json:"statusId" validate:"required"` } func (req UserRolesCreateRequest) ToEntity() *entity.UserRoles { @@ -34,18 +33,18 @@ func (req UserRolesCreateRequest) ToEntity() *entity.UserRoles { Name: req.Name, Description: req.Description, Code: req.Code, - LevelNumber: req.LevelNumber, StatusId: req.StatusId, + UserLevelId: req.UserLevelId, } } type UserRolesUpdateRequest struct { - Name string `json:"name" validate:"required"` - Description string `json:"description" validate:"required"` - Code string `json:"code" validate:"required"` - LevelNumber int `json:"level_number" validate:"required"` - StatusId int `json:"status_id" validate:"required"` - UserLevelIds []int `json:"userLevelIds" validate:"required"` + Name string `json:"name" validate:"required"` + Description string `json:"description" validate:"required"` + Code string `json:"code" validate:"required"` + LevelNumber int `json:"level_number" validate:"required"` + UserLevelId uint `json:"userLevelIds" validate:"required"` + StatusId int `json:"status_id" validate:"required"` } func (req UserRolesUpdateRequest) ToEntity() *entity.UserRoles { @@ -53,8 +52,8 @@ func (req UserRolesUpdateRequest) ToEntity() *entity.UserRoles { Name: req.Name, Description: req.Description, Code: req.Code, - LevelNumber: req.LevelNumber, StatusId: req.StatusId, + UserLevelId: req.UserLevelId, UpdatedAt: time.Now(), } } @@ -63,7 +62,7 @@ type UserRolesQueryRequestContext struct { Name string `json:"name"` Description string `json:"description"` Code string `json:"code"` - LevelNumber string `json:"levelNumber"` + UserLevelId string `json:"userLevelId"` StatusId string `json:"statusId"` } @@ -76,10 +75,10 @@ func (req UserRolesQueryRequestContext) ToParamRequest() UserRolesQueryRequest { if code := req.Code; code != "" { request.Code = &code } - if levelNumberStr := req.LevelNumber; levelNumberStr != "" { - levelNumber, err := strconv.Atoi(levelNumberStr) + if userLevelIdStr := req.UserLevelId; userLevelIdStr != "" { + userLevelId, err := strconv.Atoi(userLevelIdStr) if err == nil { - request.LevelNumber = &levelNumber + request.UserLevelId = &userLevelId } } if statusIdStr := req.StatusId; statusIdStr != "" { diff --git a/app/module/user_roles/response/user_roles.response.go b/app/module/user_roles/response/user_roles.response.go index e5f82bf..7747582 100644 --- a/app/module/user_roles/response/user_roles.response.go +++ b/app/module/user_roles/response/user_roles.response.go @@ -7,7 +7,7 @@ type UserRolesResponse struct { Name string `json:"name"` Description string `json:"description"` Code string `json:"code"` - LevelNumber int `json:"level_number"` + UserLevelId uint `json:"user_level_id"` StatusId int `json:"status_id"` CreatedById *uint `json:"created_by_id"` IsActive *bool `json:"is_active"` diff --git a/app/module/user_roles/service/user_roles.service.go b/app/module/user_roles/service/user_roles.service.go index 4c9d113..7830168 100644 --- a/app/module/user_roles/service/user_roles.service.go +++ b/app/module/user_roles/service/user_roles.service.go @@ -2,7 +2,6 @@ package service import ( "github.com/rs/zerolog" - "go-humas-be/app/database/entity" userLevelsRepository "go-humas-be/app/module/user_levels/repository" userRoleLevelDetailsRepository "go-humas-be/app/module/user_role_level_details/repository" "go-humas-be/app/module/user_roles/mapper" @@ -81,21 +80,7 @@ func (_i *userRolesService) Save(req request.UserRolesCreateRequest, authToken s createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken) newReq.CreatedById = &createdBy.ID - dataResult, err := _i.Repo.Create(newReq) - - for _, levelId := range req.UserLevelIds { - var userRoleLevelDetails *entity.UserRoleLevelDetails - userRoleLevelDetails = &entity.UserRoleLevelDetails{ - UserRoleId: dataResult.ID, - UserLevelId: uint(levelId), - } - err := _i.UserRoleLevelDetailsRepo.Create(userRoleLevelDetails) - if err != nil { - return err - } - } - - return err + return _i.Repo.Create(newReq) } func (_i *userRolesService) Update(id uint, req request.UserRolesUpdateRequest) (err error) { diff --git a/docs/swagger/docs.go b/docs/swagger/docs.go index c46538c..c8d47ce 100644 --- a/docs/swagger/docs.go +++ b/docs/swagger/docs.go @@ -5960,11 +5960,6 @@ const docTemplate = `{ "name": "description", "in": "query" }, - { - "type": "integer", - "name": "levelNumber", - "in": "query" - }, { "type": "string", "name": "name", @@ -5975,6 +5970,11 @@ const docTemplate = `{ "name": "statusId", "in": "query" }, + { + "type": "integer", + "name": "userLevelId", + "in": "query" + }, { "type": "integer", "name": "count", @@ -7254,10 +7254,9 @@ const docTemplate = `{ "required": [ "code", "description", - "levelNumber", "name", "statusId", - "userLevelIds" + "userLevelId" ], "properties": { "code": { @@ -7266,20 +7265,14 @@ const docTemplate = `{ "description": { "type": "string" }, - "levelNumber": { - "type": "integer" - }, "name": { "type": "string" }, "statusId": { "type": "integer" }, - "userLevelIds": { - "type": "array", - "items": { - "type": "integer" - } + "userLevelId": { + "type": "integer" } } }, @@ -7310,10 +7303,7 @@ const docTemplate = `{ "type": "integer" }, "userLevelIds": { - "type": "array", - "items": { - "type": "integer" - } + "type": "integer" } } }, diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index d27fd6f..5d18308 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -5949,11 +5949,6 @@ "name": "description", "in": "query" }, - { - "type": "integer", - "name": "levelNumber", - "in": "query" - }, { "type": "string", "name": "name", @@ -5964,6 +5959,11 @@ "name": "statusId", "in": "query" }, + { + "type": "integer", + "name": "userLevelId", + "in": "query" + }, { "type": "integer", "name": "count", @@ -7243,10 +7243,9 @@ "required": [ "code", "description", - "levelNumber", "name", "statusId", - "userLevelIds" + "userLevelId" ], "properties": { "code": { @@ -7255,20 +7254,14 @@ "description": { "type": "string" }, - "levelNumber": { - "type": "integer" - }, "name": { "type": "string" }, "statusId": { "type": "integer" }, - "userLevelIds": { - "type": "array", - "items": { - "type": "integer" - } + "userLevelId": { + "type": "integer" } } }, @@ -7299,10 +7292,7 @@ "type": "integer" }, "userLevelIds": { - "type": "array", - "items": { - "type": "integer" - } + "type": "integer" } } }, diff --git a/docs/swagger/swagger.yaml b/docs/swagger/swagger.yaml index 4542379..6bdc1c6 100644 --- a/docs/swagger/swagger.yaml +++ b/docs/swagger/swagger.yaml @@ -433,23 +433,18 @@ definitions: type: string description: type: string - levelNumber: - type: integer name: type: string statusId: type: integer - userLevelIds: - items: - type: integer - type: array + userLevelId: + type: integer required: - code - description - - levelNumber - name - statusId - - userLevelIds + - userLevelId type: object request.UserRolesUpdateRequest: properties: @@ -464,9 +459,7 @@ definitions: status_id: type: integer userLevelIds: - items: - type: integer - type: array + type: integer required: - code - description @@ -4378,15 +4371,15 @@ paths: - in: query name: description type: string - - in: query - name: levelNumber - type: integer - in: query name: name type: string - in: query name: statusId type: integer + - in: query + name: userLevelId + type: integer - in: query name: count type: integer