feat: fixing user role

This commit is contained in:
hanif salafi 2024-05-12 15:21:52 +07:00
parent a50142eeba
commit c34041a2a2
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"`
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()"`

View File

@ -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()

View File

@ -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,

View File

@ -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) {

View File

@ -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 != "" {

View File

@ -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"`

View File

@ -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) {

View File

@ -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"
}
}
},

View File

@ -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"
}
}
},

View File

@ -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