diff --git a/app/module/user_role_level_details/repository/user_role_level_details.repository.go b/app/module/user_role_level_details/repository/user_role_level_details.repository.go index 88d2932..0d7c684 100644 --- a/app/module/user_role_level_details/repository/user_role_level_details.repository.go +++ b/app/module/user_role_level_details/repository/user_role_level_details.repository.go @@ -17,6 +17,7 @@ type UserRoleLevelDetailsRepository interface { FindOne(id uint) (userRoleLevelDetails *entity.UserRoleLevelDetails, err error) FindByUserLevels(userLevelId uint) (userRoleLevelDetails []*entity.UserRoleLevelDetails, err error) Create(userRoleLevelDetails *entity.UserRoleLevelDetails) (err error) + CreateAll(userRoleLevelDetails *[]entity.UserRoleLevelDetails) (err error) Update(id uint, userRoleLevelDetails *entity.UserRoleLevelDetails) (err error) Delete(id uint) (err error) } @@ -67,6 +68,10 @@ func (_i *userRoleLevelDetailsRepository) Create(userRoleLevelDetails *entity.Us return _i.DB.DB.Create(userRoleLevelDetails).Error } +func (_i *userRoleLevelDetailsRepository) CreateAll(userRoleLevelDetails *[]entity.UserRoleLevelDetails) (err error) { + return _i.DB.DB.Create(userRoleLevelDetails).Error +} + func (_i *userRoleLevelDetailsRepository) Update(id uint, userRoleLevelDetails *entity.UserRoleLevelDetails) (err error) { return _i.DB.DB.Model(&entity.UserRoleLevelDetails{}). Where(&entity.UserRoleLevelDetails{ID: id}). diff --git a/app/module/user_roles/request/user_roles.request.go b/app/module/user_roles/request/user_roles.request.go index 4ffc798..b1b8025 100644 --- a/app/module/user_roles/request/user_roles.request.go +++ b/app/module/user_roles/request/user_roles.request.go @@ -25,7 +25,7 @@ type UserRolesCreateRequest struct { Name string `json:"name" validate:"required"` Description string `json:"description" validate:"required"` Code string `json:"code" validate:"required"` - UserLevelId uint `json:"userLevelId" validate:"required"` + UserLevelIds []uint `json:"userLevelIds" validate:"required"` UserRoleAccess []userRoleAccessReq.UserRoleAccessesCreateRequest `json:"userRoleAccess" validate:"required"` StatusId int `json:"statusId" validate:"required"` } @@ -36,17 +36,16 @@ func (req UserRolesCreateRequest) ToEntity() *entity.UserRoles { Description: req.Description, Code: req.Code, 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"` - UserLevelId uint `json:"userLevelIds" validate:"required"` - StatusId int `json:"status_id" 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"` + UserLevelIds []uint `json:"userLevelIds" validate:"required"` + StatusId int `json:"status_id" validate:"required"` } func (req UserRolesUpdateRequest) ToEntity() *entity.UserRoles { @@ -55,7 +54,6 @@ func (req UserRolesUpdateRequest) ToEntity() *entity.UserRoles { Description: req.Description, Code: req.Code, StatusId: req.StatusId, - UserLevelId: req.UserLevelId, UpdatedAt: time.Now(), } } diff --git a/app/module/user_roles/service/user_roles.service.go b/app/module/user_roles/service/user_roles.service.go index 31a1ff6..dff12f2 100644 --- a/app/module/user_roles/service/user_roles.service.go +++ b/app/module/user_roles/service/user_roles.service.go @@ -105,6 +105,21 @@ func (_i *userRolesService) Save(req request.UserRolesCreateRequest, authToken s if err != nil { return err } + + var UserRoleLevelDetailList []entity.UserRoleLevelDetails + isActive := true + for _, id := range req.UserLevelIds { + userRoleLevelDetail := entity.UserRoleLevelDetails{ + UserRoleId: userRolesReturn.ID, + UserLevelId: id, + IsActive: &isActive, + } + UserRoleLevelDetailList = append(UserRoleLevelDetailList, userRoleLevelDetail) + } + err = _i.UserRoleLevelDetailsRepo.CreateAll(&UserRoleLevelDetailList) + if err != nil { + return err + } } return err diff --git a/config/toml/config.toml b/config/toml/config.toml index 182f5b1..062b94e 100644 --- a/config/toml/config.toml +++ b/config/toml/config.toml @@ -1,7 +1,7 @@ # Configuration vars for cmd/app [app] name = "Fiber starter" -host = "http://103.82.242.92" +host = "http://localhost" port = ":8800" external-port = ":8888" idle-timeout = 5 # As seconds diff --git a/docs/swagger/docs.go b/docs/swagger/docs.go index edc3652..840193e 100644 --- a/docs/swagger/docs.go +++ b/docs/swagger/docs.go @@ -9464,7 +9464,7 @@ const docTemplate = `{ "description", "name", "statusId", - "userLevelId", + "userLevelIds", "userRoleAccess" ], "properties": { @@ -9480,8 +9480,11 @@ const docTemplate = `{ "statusId": { "type": "integer" }, - "userLevelId": { - "type": "integer" + "userLevelIds": { + "type": "array", + "items": { + "type": "integer" + } }, "userRoleAccess": { "type": "array", @@ -9518,7 +9521,10 @@ const docTemplate = `{ "type": "integer" }, "userLevelIds": { - "type": "integer" + "type": "array", + "items": { + "type": "integer" + } } } }, diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index 417830f..3b48e26 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -9453,7 +9453,7 @@ "description", "name", "statusId", - "userLevelId", + "userLevelIds", "userRoleAccess" ], "properties": { @@ -9469,8 +9469,11 @@ "statusId": { "type": "integer" }, - "userLevelId": { - "type": "integer" + "userLevelIds": { + "type": "array", + "items": { + "type": "integer" + } }, "userRoleAccess": { "type": "array", @@ -9507,7 +9510,10 @@ "type": "integer" }, "userLevelIds": { - "type": "integer" + "type": "array", + "items": { + "type": "integer" + } } } }, diff --git a/docs/swagger/swagger.yaml b/docs/swagger/swagger.yaml index e72615d..cb593c1 100644 --- a/docs/swagger/swagger.yaml +++ b/docs/swagger/swagger.yaml @@ -676,8 +676,10 @@ definitions: type: string statusId: type: integer - userLevelId: - type: integer + userLevelIds: + items: + type: integer + type: array userRoleAccess: items: $ref: '#/definitions/request.UserRoleAccessesCreateRequest' @@ -687,7 +689,7 @@ definitions: - description - name - statusId - - userLevelId + - userLevelIds - userRoleAccess type: object request.UserRolesUpdateRequest: @@ -703,7 +705,9 @@ definitions: status_id: type: integer userLevelIds: - type: integer + items: + type: integer + type: array required: - code - description