From 429e551010b69a95e02abe4c866e0219709bf81b Mon Sep 17 00:00:00 2001 From: hanif salafi Date: Thu, 6 Feb 2025 17:16:37 +0700 Subject: [PATCH] feat: update user levels --- app/database/entity/user_levels.entity.go | 2 +- .../controller/user_levels.controller.go | 3 ++- .../user_levels/mapper/user_levels.mapper.go | 18 +++++++++--------- .../repository/user_levels.repository.go | 7 ++++--- .../user_levels/request/user_levels.request.go | 4 ++-- .../response/user_levels.response.go | 14 +++++++------- .../user_levels/service/user_levels.service.go | 12 +++++++++--- docs/swagger/docs.go | 6 ++---- docs/swagger/swagger.json | 6 ++---- docs/swagger/swagger.yaml | 2 -- 10 files changed, 38 insertions(+), 36 deletions(-) diff --git a/app/database/entity/user_levels.entity.go b/app/database/entity/user_levels.entity.go index 3498833..5fcb844 100644 --- a/app/database/entity/user_levels.entity.go +++ b/app/database/entity/user_levels.entity.go @@ -8,7 +8,7 @@ type UserLevels struct { AliasName string `json:"alias_name" gorm:"type:varchar"` LevelNumber int `json:"level_number" gorm:"type:int4"` ParentLevelId int `json:"parent_level_id" gorm:"type:int4"` - ProvinceId int `json:"province_id" gorm:"type:int4"` + ProvinceId *int `json:"province_id" gorm:"type:int4"` Group *string `json:"group" gorm:"type:varchar"` IsActive *bool `json:"is_active" gorm:"type:bool"` CreatedAt time.Time `json:"created_at" gorm:"default:now()"` diff --git a/app/module/user_levels/controller/user_levels.controller.go b/app/module/user_levels/controller/user_levels.controller.go index 2f9b425..bde38d0 100644 --- a/app/module/user_levels/controller/user_levels.controller.go +++ b/app/module/user_levels/controller/user_levels.controller.go @@ -114,7 +114,7 @@ func (_i *userLevelsController) Save(c *fiber.Ctx) error { return err } - err := _i.userLevelsService.Save(*req) + dataResult, err := _i.userLevelsService.Save(*req) if err != nil { return err } @@ -122,6 +122,7 @@ func (_i *userLevelsController) Save(c *fiber.Ctx) error { return utilRes.Resp(c, utilRes.Response{ Success: true, Messages: utilRes.Messages{"UserLevels successfully created"}, + Data: dataResult, }) } diff --git a/app/module/user_levels/mapper/user_levels.mapper.go b/app/module/user_levels/mapper/user_levels.mapper.go index 00a325d..c687a80 100644 --- a/app/module/user_levels/mapper/user_levels.mapper.go +++ b/app/module/user_levels/mapper/user_levels.mapper.go @@ -8,16 +8,16 @@ import ( func UserLevelsResponseMapper(userLevelsReq *entity.UserLevels) (userLevelsRes *res.UserLevelsResponse) { if userLevelsReq != nil { userLevelsRes = &res.UserLevelsResponse{ - ID: userLevelsReq.ID, - Name: userLevelsReq.Name, - AliasName: userLevelsReq.AliasName, - LevelNumber: userLevelsReq.LevelNumber, - ParentLevelId: userLevelsReq.ParentLevelId, + ID: userLevelsReq.ID, + Name: userLevelsReq.Name, + AliasName: userLevelsReq.AliasName, + LevelNumber: userLevelsReq.LevelNumber, + ParentLevelId: userLevelsReq.ParentLevelId, ProvinceId: userLevelsReq.ProvinceId, - IsActive: userLevelsReq.IsActive, - CreatedAt: userLevelsReq.CreatedAt, - UpdatedAt: userLevelsReq.UpdatedAt, + IsActive: userLevelsReq.IsActive, + CreatedAt: userLevelsReq.CreatedAt, + UpdatedAt: userLevelsReq.UpdatedAt, } } return userLevelsRes -} \ No newline at end of file +} diff --git a/app/module/user_levels/repository/user_levels.repository.go b/app/module/user_levels/repository/user_levels.repository.go index 4712350..276d916 100644 --- a/app/module/user_levels/repository/user_levels.repository.go +++ b/app/module/user_levels/repository/user_levels.repository.go @@ -18,7 +18,7 @@ type UserLevelsRepository interface { GetAll(req request.UserLevelsQueryRequest) (userLevelss []*entity.UserLevels, paging paginator.Pagination, err error) FindOne(id uint) (userLevels *entity.UserLevels, err error) FindOneByAlias(alias string) (userLevels *entity.UserLevels, err error) - Create(userLevels *entity.UserLevels) (err error) + Create(userLevels *entity.UserLevels) (userLevelsReturn *entity.UserLevels, err error) Update(id uint, userLevels *entity.UserLevels) (err error) Delete(id uint) (err error) } @@ -92,8 +92,9 @@ func (_i *userLevelsRepository) FindOneByAlias(alias string) (userLevels *entity return userLevels, nil } -func (_i *userLevelsRepository) Create(userLevels *entity.UserLevels) (err error) { - return _i.DB.DB.Create(userLevels).Error +func (_i *userLevelsRepository) Create(userLevels *entity.UserLevels) (userLevelsReturn *entity.UserLevels, err error) { + result := _i.DB.DB.Create(userLevels) + return userLevels, result.Error } func (_i *userLevelsRepository) Update(id uint, userLevels *entity.UserLevels) (err error) { diff --git a/app/module/user_levels/request/user_levels.request.go b/app/module/user_levels/request/user_levels.request.go index 9502738..74e5e42 100644 --- a/app/module/user_levels/request/user_levels.request.go +++ b/app/module/user_levels/request/user_levels.request.go @@ -24,7 +24,7 @@ type UserLevelsCreateRequest struct { AliasName string `json:"aliasName" validate:"required"` LevelNumber int `json:"levelNumber" validate:"required"` ParentLevelId int `json:"parentLevelId" validate:"required"` - ProvinceId int `json:"provinceId" validate:"required"` + ProvinceId *int `json:"provinceId"` IsActive *bool `json:"isActive"` } @@ -44,7 +44,7 @@ type UserLevelsUpdateRequest struct { AliasName string `json:"aliasName" validate:"required"` LevelNumber int `json:"levelNumber" validate:"required"` ParentLevelId int `json:"parentLevelId" validate:"required"` - ProvinceId int `json:"provinceId" validate:"required"` + ProvinceId *int `json:"provinceId"` } func (req UserLevelsUpdateRequest) ToEntity() *entity.UserLevels { diff --git a/app/module/user_levels/response/user_levels.response.go b/app/module/user_levels/response/user_levels.response.go index 55d78d7..0bb8540 100644 --- a/app/module/user_levels/response/user_levels.response.go +++ b/app/module/user_levels/response/user_levels.response.go @@ -5,11 +5,11 @@ import "time" type UserLevelsResponse struct { ID uint `json:"id"` Name string `json:"name"` - AliasName string `json:"alias_name"` - LevelNumber int `json:"level_number"` - ParentLevelId int `json:"parent_level_id"` - ProvinceId int `json:"province_id"` - IsActive *bool `json:"is_active"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` + AliasName string `json:"aliasName"` + LevelNumber int `json:"levelNumber"` + ParentLevelId int `json:"parentLevelId"` + ProvinceId *int `json:"provinceId"` + IsActive *bool `json:"isActive"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` } diff --git a/app/module/user_levels/service/user_levels.service.go b/app/module/user_levels/service/user_levels.service.go index dfa66ca..478ad96 100644 --- a/app/module/user_levels/service/user_levels.service.go +++ b/app/module/user_levels/service/user_levels.service.go @@ -2,6 +2,7 @@ package service import ( "github.com/rs/zerolog" + "go-humas-be/app/database/entity" "go-humas-be/app/module/user_levels/mapper" "go-humas-be/app/module/user_levels/repository" "go-humas-be/app/module/user_levels/request" @@ -19,7 +20,7 @@ type userLevelsService struct { type UserLevelsService interface { All(req request.UserLevelsQueryRequest) (userLevels []*response.UserLevelsResponse, paging paginator.Pagination, err error) Show(id uint) (userLevels *response.UserLevelsResponse, err error) - Save(req request.UserLevelsCreateRequest) (err error) + Save(req request.UserLevelsCreateRequest) (userLevels *entity.UserLevels, err error) Update(id uint, req request.UserLevelsUpdateRequest) (err error) Delete(id uint) error } @@ -56,10 +57,15 @@ func (_i *userLevelsService) Show(id uint) (userLevels *response.UserLevelsRespo return mapper.UserLevelsResponseMapper(result), nil } -func (_i *userLevelsService) Save(req request.UserLevelsCreateRequest) (err error) { +func (_i *userLevelsService) Save(req request.UserLevelsCreateRequest) (userLevels *entity.UserLevels, err error) { _i.Log.Info().Interface("data", req).Msg("") - return _i.Repo.Create(req.ToEntity()) + saveUserLevelsRes, err := _i.Repo.Create(req.ToEntity()) + if err != nil { + return nil, err + } + + return saveUserLevelsRes, nil } func (_i *userLevelsService) Update(id uint, req request.UserLevelsUpdateRequest) (err error) { diff --git a/docs/swagger/docs.go b/docs/swagger/docs.go index 27283e9..8e51684 100644 --- a/docs/swagger/docs.go +++ b/docs/swagger/docs.go @@ -7478,8 +7478,7 @@ const docTemplate = `{ "aliasName", "levelNumber", "name", - "parentLevelId", - "provinceId" + "parentLevelId" ], "properties": { "aliasName": { @@ -7508,8 +7507,7 @@ const docTemplate = `{ "aliasName", "levelNumber", "name", - "parentLevelId", - "provinceId" + "parentLevelId" ], "properties": { "aliasName": { diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index 2787c80..aff0e3d 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -7467,8 +7467,7 @@ "aliasName", "levelNumber", "name", - "parentLevelId", - "provinceId" + "parentLevelId" ], "properties": { "aliasName": { @@ -7497,8 +7496,7 @@ "aliasName", "levelNumber", "name", - "parentLevelId", - "provinceId" + "parentLevelId" ], "properties": { "aliasName": { diff --git a/docs/swagger/swagger.yaml b/docs/swagger/swagger.yaml index 47bbb54..e3a8c10 100644 --- a/docs/swagger/swagger.yaml +++ b/docs/swagger/swagger.yaml @@ -439,7 +439,6 @@ definitions: - levelNumber - name - parentLevelId - - provinceId type: object request.UserLevelsUpdateRequest: properties: @@ -458,7 +457,6 @@ definitions: - levelNumber - name - parentLevelId - - provinceId type: object request.UserLogin: properties: