feat: fixing user role

This commit is contained in:
hanif salafi 2024-05-12 15:21:52 +07:00
parent bdc5b02c07
commit 21a5970dd8
10 changed files with 53 additions and 97 deletions

View File

@ -7,9 +7,9 @@ type UserRoles struct {
Name string `json:"name" gorm:"type:varchar"` Name string `json:"name" gorm:"type:varchar"`
Description string `json:"description" gorm:"type:varchar"` Description string `json:"description" gorm:"type:varchar"`
Code string `json:"code" 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"` StatusId int `json:"status_id" gorm:"type:int4;default:1"`
CreatedById *uint `json:"created_by_id" gorm:"type:int4"` 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"` IsActive *bool `json:"is_active" gorm:"type:bool;default:true"`
CreatedAt time.Time `json:"created_at" gorm:"default:now()"` CreatedAt time.Time `json:"created_at" gorm:"default:now()"`
UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"`

View File

@ -53,7 +53,7 @@ func (_i *userRolesController) All(c *fiber.Ctx) error {
Name: c.Query("name"), Name: c.Query("name"),
Description: c.Query("description"), Description: c.Query("description"),
Code: c.Query("code"), Code: c.Query("code"),
LevelNumber: c.Query("levelNumber"), UserLevelId: c.Query("userLevelId"),
StatusId: c.Query("statusId"), StatusId: c.Query("statusId"),
} }
req := reqContext.ToParamRequest() req := reqContext.ToParamRequest()

View File

@ -12,7 +12,7 @@ func UserRolesResponseMapper(userRolesReq *entity.UserRoles) (userRolesRes *res.
Name: userRolesReq.Name, Name: userRolesReq.Name,
Description: userRolesReq.Description, Description: userRolesReq.Description,
Code: userRolesReq.Code, Code: userRolesReq.Code,
LevelNumber: userRolesReq.LevelNumber, UserLevelId: userRolesReq.UserLevelId,
StatusId: userRolesReq.StatusId, StatusId: userRolesReq.StatusId,
CreatedById: userRolesReq.CreatedById, CreatedById: userRolesReq.CreatedById,
IsActive: userRolesReq.IsActive, IsActive: userRolesReq.IsActive,

View File

@ -19,7 +19,7 @@ type userRolesRepository struct {
type UserRolesRepository interface { type UserRolesRepository interface {
GetAll(req request.UserRolesQueryRequest) (userRoless []*entity.UserRoles, paging paginator.Pagination, err error) GetAll(req request.UserRolesQueryRequest) (userRoless []*entity.UserRoles, paging paginator.Pagination, err error)
FindOne(id uint) (userRoles *entity.UserRoles, 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) Update(id uint, userRoles *entity.UserRoles) (err error)
Delete(id uint) (err error) Delete(id uint) (err error)
} }
@ -47,8 +47,8 @@ func (_i *userRolesRepository) GetAll(req request.UserRolesQueryRequest) (userRo
if req.Code != nil { if req.Code != nil {
query = query.Where("code = ?", req.Code) query = query.Where("code = ?", req.Code)
} }
if req.LevelNumber != nil { if req.UserLevelId != nil {
query = query.Where("level_number = ?", req.LevelNumber) query = query.Where("user_level_id = ?", req.UserLevelId)
} }
if req.StatusId != nil { if req.StatusId != nil {
query = query.Where("status_id = ?", req.StatusId) query = query.Where("status_id = ?", req.StatusId)
@ -84,9 +84,8 @@ func (_i *userRolesRepository) FindOne(id uint) (userRoles *entity.UserRoles, er
return userRoles, nil return userRoles, nil
} }
func (_i *userRolesRepository) Create(userRoles *entity.UserRoles) (userRolesReturn *entity.UserRoles, err error) { func (_i *userRolesRepository) Create(userRoles *entity.UserRoles) (err error) {
result := _i.DB.DB.Create(userRoles) return _i.DB.DB.Create(userRoles).Error
return userRoles, result.Error
} }
func (_i *userRolesRepository) Update(id uint, userRoles *entity.UserRoles) (err error) { func (_i *userRolesRepository) Update(id uint, userRoles *entity.UserRoles) (err error) {

View File

@ -15,7 +15,7 @@ type UserRolesQueryRequest struct {
Name *string `json:"name"` Name *string `json:"name"`
Description *string `json:"description"` Description *string `json:"description"`
Code *string `json:"code"` Code *string `json:"code"`
LevelNumber *int `json:"levelNumber"` UserLevelId *int `json:"userLevelId"`
StatusId *int `json:"statusId"` StatusId *int `json:"statusId"`
Pagination *paginator.Pagination `json:"pagination"` Pagination *paginator.Pagination `json:"pagination"`
} }
@ -24,9 +24,8 @@ type UserRolesCreateRequest struct {
Name string `json:"name" validate:"required"` Name string `json:"name" validate:"required"`
Description string `json:"description" validate:"required"` Description string `json:"description" validate:"required"`
Code string `json:"code" validate:"required"` Code string `json:"code" validate:"required"`
LevelNumber int `json:"levelNumber" validate:"required"` UserLevelId uint `json:"userLevelId" validate:"required"`
StatusId int `json:"statusId" validate:"required"` StatusId int `json:"statusId" validate:"required"`
UserLevelIds []int `json:"userLevelIds" validate:"required"`
} }
func (req UserRolesCreateRequest) ToEntity() *entity.UserRoles { func (req UserRolesCreateRequest) ToEntity() *entity.UserRoles {
@ -34,8 +33,8 @@ func (req UserRolesCreateRequest) ToEntity() *entity.UserRoles {
Name: req.Name, Name: req.Name,
Description: req.Description, Description: req.Description,
Code: req.Code, Code: req.Code,
LevelNumber: req.LevelNumber,
StatusId: req.StatusId, StatusId: req.StatusId,
UserLevelId: req.UserLevelId,
} }
} }
@ -44,8 +43,8 @@ type UserRolesUpdateRequest struct {
Description string `json:"description" validate:"required"` Description string `json:"description" validate:"required"`
Code string `json:"code" validate:"required"` Code string `json:"code" validate:"required"`
LevelNumber int `json:"level_number" validate:"required"` LevelNumber int `json:"level_number" validate:"required"`
UserLevelId uint `json:"userLevelIds" validate:"required"`
StatusId int `json:"status_id" validate:"required"` StatusId int `json:"status_id" validate:"required"`
UserLevelIds []int `json:"userLevelIds" validate:"required"`
} }
func (req UserRolesUpdateRequest) ToEntity() *entity.UserRoles { func (req UserRolesUpdateRequest) ToEntity() *entity.UserRoles {
@ -53,8 +52,8 @@ func (req UserRolesUpdateRequest) ToEntity() *entity.UserRoles {
Name: req.Name, Name: req.Name,
Description: req.Description, Description: req.Description,
Code: req.Code, Code: req.Code,
LevelNumber: req.LevelNumber,
StatusId: req.StatusId, StatusId: req.StatusId,
UserLevelId: req.UserLevelId,
UpdatedAt: time.Now(), UpdatedAt: time.Now(),
} }
} }
@ -63,7 +62,7 @@ type UserRolesQueryRequestContext struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
Code string `json:"code"` Code string `json:"code"`
LevelNumber string `json:"levelNumber"` UserLevelId string `json:"userLevelId"`
StatusId string `json:"statusId"` StatusId string `json:"statusId"`
} }
@ -76,10 +75,10 @@ func (req UserRolesQueryRequestContext) ToParamRequest() UserRolesQueryRequest {
if code := req.Code; code != "" { if code := req.Code; code != "" {
request.Code = &code request.Code = &code
} }
if levelNumberStr := req.LevelNumber; levelNumberStr != "" { if userLevelIdStr := req.UserLevelId; userLevelIdStr != "" {
levelNumber, err := strconv.Atoi(levelNumberStr) userLevelId, err := strconv.Atoi(userLevelIdStr)
if err == nil { if err == nil {
request.LevelNumber = &levelNumber request.UserLevelId = &userLevelId
} }
} }
if statusIdStr := req.StatusId; statusIdStr != "" { if statusIdStr := req.StatusId; statusIdStr != "" {

View File

@ -7,7 +7,7 @@ type UserRolesResponse struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
Code string `json:"code"` Code string `json:"code"`
LevelNumber int `json:"level_number"` UserLevelId uint `json:"user_level_id"`
StatusId int `json:"status_id"` StatusId int `json:"status_id"`
CreatedById *uint `json:"created_by_id"` CreatedById *uint `json:"created_by_id"`
IsActive *bool `json:"is_active"` IsActive *bool `json:"is_active"`

View File

@ -2,7 +2,6 @@ package service
import ( import (
"github.com/rs/zerolog" "github.com/rs/zerolog"
"go-humas-be/app/database/entity"
userLevelsRepository "go-humas-be/app/module/user_levels/repository" userLevelsRepository "go-humas-be/app/module/user_levels/repository"
userRoleLevelDetailsRepository "go-humas-be/app/module/user_role_level_details/repository" userRoleLevelDetailsRepository "go-humas-be/app/module/user_role_level_details/repository"
"go-humas-be/app/module/user_roles/mapper" "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) createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
newReq.CreatedById = &createdBy.ID newReq.CreatedById = &createdBy.ID
dataResult, err := _i.Repo.Create(newReq) return _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
} }
func (_i *userRolesService) Update(id uint, req request.UserRolesUpdateRequest) (err error) { func (_i *userRolesService) Update(id uint, req request.UserRolesUpdateRequest) (err error) {

View File

@ -5960,11 +5960,6 @@ const docTemplate = `{
"name": "description", "name": "description",
"in": "query" "in": "query"
}, },
{
"type": "integer",
"name": "levelNumber",
"in": "query"
},
{ {
"type": "string", "type": "string",
"name": "name", "name": "name",
@ -5975,6 +5970,11 @@ const docTemplate = `{
"name": "statusId", "name": "statusId",
"in": "query" "in": "query"
}, },
{
"type": "integer",
"name": "userLevelId",
"in": "query"
},
{ {
"type": "integer", "type": "integer",
"name": "count", "name": "count",
@ -7254,10 +7254,9 @@ const docTemplate = `{
"required": [ "required": [
"code", "code",
"description", "description",
"levelNumber",
"name", "name",
"statusId", "statusId",
"userLevelIds" "userLevelId"
], ],
"properties": { "properties": {
"code": { "code": {
@ -7266,22 +7265,16 @@ const docTemplate = `{
"description": { "description": {
"type": "string" "type": "string"
}, },
"levelNumber": {
"type": "integer"
},
"name": { "name": {
"type": "string" "type": "string"
}, },
"statusId": { "statusId": {
"type": "integer" "type": "integer"
}, },
"userLevelIds": { "userLevelId": {
"type": "array",
"items": {
"type": "integer" "type": "integer"
} }
} }
}
}, },
"request.UserRolesUpdateRequest": { "request.UserRolesUpdateRequest": {
"type": "object", "type": "object",
@ -7310,12 +7303,9 @@ const docTemplate = `{
"type": "integer" "type": "integer"
}, },
"userLevelIds": { "userLevelIds": {
"type": "array",
"items": {
"type": "integer" "type": "integer"
} }
} }
}
}, },
"request.UsersCreateRequest": { "request.UsersCreateRequest": {
"type": "object", "type": "object",

View File

@ -5949,11 +5949,6 @@
"name": "description", "name": "description",
"in": "query" "in": "query"
}, },
{
"type": "integer",
"name": "levelNumber",
"in": "query"
},
{ {
"type": "string", "type": "string",
"name": "name", "name": "name",
@ -5964,6 +5959,11 @@
"name": "statusId", "name": "statusId",
"in": "query" "in": "query"
}, },
{
"type": "integer",
"name": "userLevelId",
"in": "query"
},
{ {
"type": "integer", "type": "integer",
"name": "count", "name": "count",
@ -7243,10 +7243,9 @@
"required": [ "required": [
"code", "code",
"description", "description",
"levelNumber",
"name", "name",
"statusId", "statusId",
"userLevelIds" "userLevelId"
], ],
"properties": { "properties": {
"code": { "code": {
@ -7255,22 +7254,16 @@
"description": { "description": {
"type": "string" "type": "string"
}, },
"levelNumber": {
"type": "integer"
},
"name": { "name": {
"type": "string" "type": "string"
}, },
"statusId": { "statusId": {
"type": "integer" "type": "integer"
}, },
"userLevelIds": { "userLevelId": {
"type": "array",
"items": {
"type": "integer" "type": "integer"
} }
} }
}
}, },
"request.UserRolesUpdateRequest": { "request.UserRolesUpdateRequest": {
"type": "object", "type": "object",
@ -7299,12 +7292,9 @@
"type": "integer" "type": "integer"
}, },
"userLevelIds": { "userLevelIds": {
"type": "array",
"items": {
"type": "integer" "type": "integer"
} }
} }
}
}, },
"request.UsersCreateRequest": { "request.UsersCreateRequest": {
"type": "object", "type": "object",

View File

@ -433,23 +433,18 @@ definitions:
type: string type: string
description: description:
type: string type: string
levelNumber:
type: integer
name: name:
type: string type: string
statusId: statusId:
type: integer type: integer
userLevelIds: userLevelId:
items:
type: integer type: integer
type: array
required: required:
- code - code
- description - description
- levelNumber
- name - name
- statusId - statusId
- userLevelIds - userLevelId
type: object type: object
request.UserRolesUpdateRequest: request.UserRolesUpdateRequest:
properties: properties:
@ -464,9 +459,7 @@ definitions:
status_id: status_id:
type: integer type: integer
userLevelIds: userLevelIds:
items:
type: integer type: integer
type: array
required: required:
- code - code
- description - description
@ -4378,15 +4371,15 @@ paths:
- in: query - in: query
name: description name: description
type: string type: string
- in: query
name: levelNumber
type: integer
- in: query - in: query
name: name name: name
type: string type: string
- in: query - in: query
name: statusId name: statusId
type: integer type: integer
- in: query
name: userLevelId
type: integer
- in: query - in: query
name: count name: count
type: integer type: integer