diff --git a/app/database/entity/user_levels.entity.go b/app/database/entity/user_levels.entity.go index 920cb1a..608c51f 100644 --- a/app/database/entity/user_levels.entity.go +++ b/app/database/entity/user_levels.entity.go @@ -3,13 +3,13 @@ package entity import "time" type UserLevels struct { - ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` - Name string `json:"name" gorm:"type:varchar"` - 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"` - IsActive bool `json:"is_active" gorm:"type:bool"` - CreatedAt time.Time `json:"created_at" gorm:"default:now()"` - UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` -} \ No newline at end of file + ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` + Name string `json:"name" gorm:"type:varchar"` + 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"` + IsActive *bool `json:"is_active" gorm:"type:bool"` + CreatedAt time.Time `json:"created_at" gorm:"default:now()"` + UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` +} diff --git a/app/database/entity/user_roles.entity.go b/app/database/entity/user_roles.entity.go index bda73a5..0a2ebe5 100644 --- a/app/database/entity/user_roles.entity.go +++ b/app/database/entity/user_roles.entity.go @@ -3,14 +3,14 @@ package entity import "time" type UserRoles struct { - ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` - 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"` - CreatedById int `json:"created_by_id" gorm:"type:int4"` - IsActive bool `json:"is_active" gorm:"type:bool"` - CreatedAt time.Time `json:"created_at" gorm:"default:now()"` - UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` -} \ No newline at end of file + ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` + 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"` + CreatedById *int `json:"created_by_id" gorm:"type:int4"` + IsActive *bool `json:"is_active" gorm:"type:bool"` + CreatedAt time.Time `json:"created_at" gorm:"default:now()"` + UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` +} diff --git a/app/database/entity/users.entity.go b/app/database/entity/users.entity.go index cf63bf3..1a2c67c 100644 --- a/app/database/entity/users.entity.go +++ b/app/database/entity/users.entity.go @@ -3,25 +3,25 @@ package entity import "time" type Users struct { - ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` - Username string `json:"username" gorm:"type:varchar"` - Email string `json:"email" gorm:"type:varchar"` - Fullname string `json:"fullname" gorm:"type:varchar"` - Address string `json:"address" gorm:"type:varchar"` - PhoneNumber string `json:"phone_number" gorm:"type:varchar"` - WorkType string `json:"work_type" gorm:"type:varchar"` - GenderType string `json:"gender_type" gorm:"type:varchar"` - IdentityType string `json:"identity_type" gorm:"type:varchar"` - IdentityNumber string `json:"identity_number" gorm:"type:varchar"` - DateOfBirth string `json:"date_of_birth" gorm:"type:varchar"` - LastEducation string `json:"last_education" gorm:"type:varchar"` - KeycloakId string `json:"keycloak_id" gorm:"type:varchar"` - UserRoleId int `json:"user_role_id" gorm:"type:int4"` - StatusId int `json:"status_id" gorm:"type:int4"` - UserLevelsId int `json:"user_levels_id" gorm:"type:int4"` - CreatedById int `json:"created_by_id" gorm:"type:int4"` - ProfilePicturePath string `json:"profile_picture_path" gorm:"type:varchar"` - IsActive bool `json:"is_active" gorm:"type:bool"` - CreatedAt time.Time `json:"created_at" gorm:"default:now()"` - UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` -} \ No newline at end of file + ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` + Username string `json:"username" gorm:"type:varchar"` + Email string `json:"email" gorm:"type:varchar"` + Fullname string `json:"fullname" gorm:"type:varchar"` + Address string `json:"address" gorm:"type:varchar"` + PhoneNumber string `json:"phone_number" gorm:"type:varchar"` + WorkType string `json:"work_type" gorm:"type:varchar"` + GenderType string `json:"gender_type" gorm:"type:varchar"` + IdentityType string `json:"identity_type" gorm:"type:varchar"` + IdentityNumber string `json:"identity_number" gorm:"type:varchar"` + DateOfBirth string `json:"date_of_birth" gorm:"type:varchar"` + LastEducation string `json:"last_education" gorm:"type:varchar"` + UserRoleId int `json:"user_role_id" gorm:"type:int4"` + UserLevelsId int `json:"user_levels_id" gorm:"type:int4"` + KeycloakId *string `json:"keycloak_id" gorm:"type:varchar"` + StatusId *int `json:"status_id" gorm:"type:int4"` + CreatedById *int `json:"created_by_id" gorm:"type:int4"` + ProfilePicturePath *string `json:"profile_picture_path" gorm:"type:varchar"` + IsActive *bool `json:"is_active" gorm:"type:bool"` + CreatedAt time.Time `json:"created_at" gorm:"default:now()"` + UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` +} diff --git a/app/module/article_categories/request/article_categories.request.go b/app/module/article_categories/request/article_categories.request.go index dc03feb..4bc0733 100644 --- a/app/module/article_categories/request/article_categories.request.go +++ b/app/module/article_categories/request/article_categories.request.go @@ -16,7 +16,6 @@ type ArticleCategoriesQueryRequest struct { ThumbnailPath string `json:"thumbnail_path" validate:"required"` ThumbnailUrl string `json:"thumbnail_url" validate:"required"` ParentId int `json:"parent_id" validate:"required"` - CreatedById int `json:"created_by_id" validate:"required"` StatusId int `json:"status_id" validate:"required"` IsPublish bool `json:"is_publish" validate:"required"` PublishedAt time.Time `json:"published_at" validate:"required"` diff --git a/app/module/master_statuses/service/master_statuses.service.go b/app/module/master_statuses/service/master_statuses.service.go index 391fe2f..86f3b85 100644 --- a/app/module/master_statuses/service/master_statuses.service.go +++ b/app/module/master_statuses/service/master_statuses.service.go @@ -7,7 +7,6 @@ import ( "go-humas-be/app/module/master_statuses/request" "go-humas-be/app/module/master_statuses/response" "go-humas-be/utils/paginator" - "time" ) // MasterStatusesService @@ -70,4 +69,4 @@ func (_i *masterStatusesService) Update(id uint, req request.MasterStatusesUpdat func (_i *masterStatusesService) Delete(id uint) error { return _i.Repo.Delete(id) -} \ No newline at end of file +} diff --git a/app/module/user_levels/controller/user_levels.controller.go b/app/module/user_levels/controller/user_levels.controller.go index 5d29eb6..5e5a733 100644 --- a/app/module/user_levels/controller/user_levels.controller.go +++ b/app/module/user_levels/controller/user_levels.controller.go @@ -29,11 +29,12 @@ func NewUserLevelsController(userLevelsService service.UserLevelsService) UserLe } } -// All get all UserLevels +// All UserLevels // @Summary Get all UserLevels // @Description API for getting all UserLevels -// @Tags Task +// @Tags UserLevels // @Security Bearer +// @Param req query request.UserLevelsQueryRequest false "query parameters" // @Success 200 {object} response.Response // @Failure 401 {object} response.Response // @Failure 404 {object} response.Response @@ -46,7 +47,13 @@ func (_i *userLevelsController) All(c *fiber.Ctx) error { return err } - var req request.UserLevelsQueryRequest + reqContext := request.UserLevelsQueryRequestContext{ + Name: c.Query("name"), + LevelNumber: c.Query("levelNumber"), + ParentLevelId: c.Query("parentLevelId"), + ProvinceId: c.Query("provinceId"), + } + req := reqContext.ToParamRequest() req.Pagination = paginate userLevelsData, paging, err := _i.userLevelsService.All(req) @@ -55,16 +62,17 @@ func (_i *userLevelsController) All(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"UserLevels list successfully retrieved"}, Data: userLevelsData, Meta: paging, }) } -// Show get one UserLevels +// Show UserLevels // @Summary Get one UserLevels // @Description API for getting one UserLevels -// @Tags Task +// @Tags UserLevels // @Security Bearer // @Param id path int true "UserLevels ID" // @Success 200 {object} response.Response @@ -90,12 +98,12 @@ func (_i *userLevelsController) Show(c *fiber.Ctx) error { }) } -// Save create UserLevels +// Save UserLevels // @Summary Create UserLevels // @Description API for create UserLevels -// @Tags Task +// @Tags UserLevels // @Security Bearer -// @Body request.UserLevelsCreateRequest +// @Param payload body request.UserLevelsCreateRequest true "Required payload" // @Success 200 {object} response.Response // @Failure 401 {object} response.Response // @Failure 404 {object} response.Response @@ -114,16 +122,17 @@ func (_i *userLevelsController) Save(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"UserLevels successfully created"}, }) } -// Update update UserLevels +// Update UserLevels // @Summary update UserLevels // @Description API for update UserLevels -// @Tags Task +// @Tags UserLevels // @Security Bearer -// @Body request.UserLevelsUpdateRequest +// @Param payload body request.UserLevelsUpdateRequest true "Required payload" // @Param id path int true "UserLevels ID" // @Success 200 {object} response.Response // @Failure 401 {object} response.Response @@ -148,14 +157,15 @@ func (_i *userLevelsController) Update(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"UserLevels successfully updated"}, }) } -// Delete delete UserLevels +// Delete UserLevels // @Summary delete UserLevels // @Description API for delete UserLevels -// @Tags Task +// @Tags UserLevels // @Security Bearer // @Param id path int true "UserLevels ID" // @Success 200 {object} response.Response diff --git a/app/module/user_levels/repository/user_levels.repository.go b/app/module/user_levels/repository/user_levels.repository.go index 660d8b8..c173b63 100644 --- a/app/module/user_levels/repository/user_levels.repository.go +++ b/app/module/user_levels/repository/user_levels.repository.go @@ -5,6 +5,7 @@ import ( "go-humas-be/app/database/entity" "go-humas-be/app/module/user_levels/request" "go-humas-be/utils/paginator" + "strings" ) type userLevelsRepository struct { @@ -31,9 +32,23 @@ func (_i *userLevelsRepository) GetAll(req request.UserLevelsQueryRequest) (user var count int64 query := _i.DB.DB.Model(&entity.UserLevels{}) + query = query.Where("is_active = ?", true) + + if req.Name != nil && *req.Name != "" { + name := strings.ToLower(*req.Name) + query = query.Where("LOWER(name) LIKE ?", "%"+strings.ToLower(name)+"%") + } + if req.LevelNumber != nil { + query = query.Where("level_number = ?", req.LevelNumber) + } + if req.ParentLevelId != nil { + query = query.Where("parent_level_id = ?", req.ParentLevelId) + } + if req.ProvinceId != nil { + query = query.Where("province_id = ?", req.ProvinceId) + } query.Count(&count) - req.Pagination.Count = count req.Pagination = paginator.Paging(req.Pagination) err = query.Offset(req.Pagination.Offset).Limit(req.Pagination.Limit).Find(&userLevelss).Error @@ -66,4 +81,4 @@ func (_i *userLevelsRepository) Update(id uint, userLevels *entity.UserLevels) ( func (_i *userLevelsRepository) Delete(id uint) error { return _i.DB.DB.Delete(&entity.UserLevels{}, id).Error -} \ No newline at end of file +} diff --git a/app/module/user_levels/request/user_levels.request.go b/app/module/user_levels/request/user_levels.request.go index aaa88b0..a5eb0a1 100644 --- a/app/module/user_levels/request/user_levels.request.go +++ b/app/module/user_levels/request/user_levels.request.go @@ -3,6 +3,7 @@ package request import ( "go-humas-be/app/database/entity" "go-humas-be/utils/paginator" + "strconv" "time" ) @@ -11,22 +12,20 @@ type UserLevelsGeneric interface { } type UserLevelsQueryRequest struct { - Name string `json:"name" validate:"required"` - AliasName string `json:"alias_name" validate:"required"` - LevelNumber int `json:"level_number" validate:"required"` - ParentLevelId int `json:"parent_level_id" validate:"required"` - ProvinceId int `json:"province_id" validate:"required"` - IsActive bool `json:"is_active" validate:"required"` + Name *string `json:"name"` + LevelNumber *int `json:"levelNumber"` + ParentLevelId *int `json:"parentLevelId"` + ProvinceId *int `json:"provinceId"` Pagination *paginator.Pagination `json:"pagination"` } type UserLevelsCreateRequest struct { Name string `json:"name" validate:"required"` - AliasName string `json:"alias_name" validate:"required"` - LevelNumber int `json:"level_number" validate:"required"` - ParentLevelId int `json:"parent_level_id" validate:"required"` - ProvinceId int `json:"province_id" validate:"required"` - IsActive bool `json:"is_active" validate:"required"` + AliasName string `json:"aliasName" validate:"required"` + LevelNumber int `json:"levelNumber" validate:"required"` + ParentLevelId int `json:"parentLevelId" validate:"required"` + ProvinceId int `json:"provinceId" validate:"required"` + IsActive *bool `json:"is_active"` } func (req UserLevelsCreateRequest) ToEntity() *entity.UserLevels { @@ -41,27 +40,55 @@ func (req UserLevelsCreateRequest) ToEntity() *entity.UserLevels { } type UserLevelsUpdateRequest struct { - ID uint `json:"id" validate:"required"` - Name string `json:"name" validate:"required"` - AliasName string `json:"alias_name" validate:"required"` - LevelNumber int `json:"level_number" validate:"required"` - ParentLevelId int `json:"parent_level_id" validate:"required"` - ProvinceId int `json:"province_id" validate:"required"` - IsActive bool `json:"is_active" validate:"required"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` + Name string `json:"name" validate:"required"` + AliasName string `json:"aliasName" validate:"required"` + LevelNumber int `json:"levelNumber" validate:"required"` + ParentLevelId int `json:"parentLevelId" validate:"required"` + ProvinceId int `json:"provinceId" validate:"required"` } func (req UserLevelsUpdateRequest) ToEntity() *entity.UserLevels { return &entity.UserLevels{ - ID: req.ID, Name: req.Name, AliasName: req.AliasName, LevelNumber: req.LevelNumber, ParentLevelId: req.ParentLevelId, ProvinceId: req.ProvinceId, - IsActive: req.IsActive, - CreatedAt: req.CreatedAt, - UpdatedAt: req.UpdatedAt, + UpdatedAt: time.Now(), } } + +type UserLevelsQueryRequestContext struct { + Name string `json:"name"` + LevelNumber string `json:"levelNumber"` + ParentLevelId string `json:"parentLevelId"` + ProvinceId string `json:"provinceId"` +} + +func (req UserLevelsQueryRequestContext) ToParamRequest() UserLevelsQueryRequest { + var request UserLevelsQueryRequest + + if name := req.Name; name != "" { + request.Name = &name + } + if levelNumberStr := req.LevelNumber; levelNumberStr != "" { + LevelNumber, err := strconv.Atoi(levelNumberStr) + if err == nil { + request.LevelNumber = &LevelNumber + } + } + if parentLevelIdStr := req.ParentLevelId; parentLevelIdStr != "" { + parentLevelId, err := strconv.Atoi(parentLevelIdStr) + if err == nil { + request.ParentLevelId = &parentLevelId + } + } + if provinceIdStr := req.ProvinceId; provinceIdStr != "" { + provinceId, err := strconv.Atoi(provinceIdStr) + if err == nil { + request.ProvinceId = &provinceId + } + } + + return request +} diff --git a/app/module/user_levels/service/user_levels.service.go b/app/module/user_levels/service/user_levels.service.go index 4a9b615..dfa66ca 100644 --- a/app/module/user_levels/service/user_levels.service.go +++ b/app/module/user_levels/service/user_levels.service.go @@ -68,5 +68,12 @@ func (_i *userLevelsService) Update(id uint, req request.UserLevelsUpdateRequest } func (_i *userLevelsService) Delete(id uint) error { - return _i.Repo.Delete(id) + result, err := _i.Repo.FindOne(id) + if err != nil { + return err + } + + isActive := false + result.IsActive = &isActive + return _i.Repo.Update(id, result) } diff --git a/app/module/user_roles/controller/controller.go b/app/module/user_roles/controller/controller.go index cb3e7a4..6ac8af5 100644 --- a/app/module/user_roles/controller/controller.go +++ b/app/module/user_roles/controller/controller.go @@ -1,13 +1,16 @@ package controller -import "go-humas-be/app/module/user_roles/service" +import ( + "github.com/rs/zerolog" + "go-humas-be/app/module/user_roles/service" +) type Controller struct { UserRoles UserRolesController } -func NewController(UserRolesService service.UserRolesService) *Controller { +func NewController(UserRolesService service.UserRolesService, log zerolog.Logger) *Controller { return &Controller{ - UserRoles: NewUserRolesController(UserRolesService), + UserRoles: NewUserRolesController(UserRolesService, log), } -} \ No newline at end of file +} diff --git a/app/module/user_roles/controller/user_roles.controller.go b/app/module/user_roles/controller/user_roles.controller.go index b6ec973..2288056 100644 --- a/app/module/user_roles/controller/user_roles.controller.go +++ b/app/module/user_roles/controller/user_roles.controller.go @@ -2,17 +2,18 @@ package controller import ( "github.com/gofiber/fiber/v2" + "github.com/rs/zerolog" "go-humas-be/app/module/user_roles/request" "go-humas-be/app/module/user_roles/service" "go-humas-be/utils/paginator" - "strconv" - utilRes "go-humas-be/utils/response" utilVal "go-humas-be/utils/validator" + "strconv" ) type userRolesController struct { userRolesService service.UserRolesService + Log zerolog.Logger } type UserRolesController interface { @@ -23,17 +24,19 @@ type UserRolesController interface { Delete(c *fiber.Ctx) error } -func NewUserRolesController(userRolesService service.UserRolesService) UserRolesController { +func NewUserRolesController(userRolesService service.UserRolesService, log zerolog.Logger) UserRolesController { return &userRolesController{ userRolesService: userRolesService, + Log: log, } } -// All get all UserRoles +// All UserRoles // @Summary Get all UserRoles // @Description API for getting all UserRoles -// @Tags Task +// @Tags UserRoles // @Security Bearer +// @Param req query request.UserRolesQueryRequest false "query parameters" // @Success 200 {object} response.Response // @Failure 401 {object} response.Response // @Failure 404 {object} response.Response @@ -46,7 +49,14 @@ func (_i *userRolesController) All(c *fiber.Ctx) error { return err } - var req request.UserRolesQueryRequest + reqContext := request.UserRolesQueryRequestContext{ + Name: c.Query("name"), + Description: c.Query("description"), + Code: c.Query("code"), + LevelNumber: c.Query("levelNumber"), + StatusId: c.Query("statusId"), + } + req := reqContext.ToParamRequest() req.Pagination = paginate userRolesData, paging, err := _i.userRolesService.All(req) @@ -55,16 +65,17 @@ func (_i *userRolesController) All(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"UserRoles list successfully retrieved"}, Data: userRolesData, Meta: paging, }) } -// Show get one UserRoles +// Show UserRoles // @Summary Get one UserRoles // @Description API for getting one UserRoles -// @Tags Task +// @Tags UserRoles // @Security Bearer // @Param id path int true "UserRoles ID" // @Success 200 {object} response.Response @@ -85,17 +96,18 @@ func (_i *userRolesController) Show(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"UserRoles successfully retrieved"}, Data: userRolesData, }) } -// Save create UserRoles +// Save UserRoles // @Summary Create UserRoles // @Description API for create UserRoles -// @Tags Task +// @Tags UserRoles // @Security Bearer -// @Body request.UserRolesCreateRequest +// @Param payload body request.UserRolesCreateRequest true "Required payload" // @Success 200 {object} response.Response // @Failure 401 {object} response.Response // @Failure 404 {object} response.Response @@ -114,16 +126,17 @@ func (_i *userRolesController) Save(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"UserRoles successfully created"}, }) } -// Update update UserRoles +// Update UserRoles // @Summary update UserRoles // @Description API for update UserRoles -// @Tags Task +// @Tags UserRoles // @Security Bearer -// @Body request.UserRolesUpdateRequest +// @Param payload body request.UserRolesUpdateRequest true "Required payload" // @Param id path int true "UserRoles ID" // @Success 200 {object} response.Response // @Failure 401 {object} response.Response @@ -148,14 +161,15 @@ func (_i *userRolesController) Update(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"UserRoles successfully updated"}, }) } -// Delete delete UserRoles +// Delete UserRoles // @Summary delete UserRoles // @Description API for delete UserRoles -// @Tags Task +// @Tags UserRoles // @Security Bearer // @Param id path int true "UserRoles ID" // @Success 200 {object} response.Response @@ -176,6 +190,7 @@ func (_i *userRolesController) Delete(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"UserRoles successfully deleted"}, }) } diff --git a/app/module/user_roles/repository/user_roles.repository.go b/app/module/user_roles/repository/user_roles.repository.go index a9d916b..db4adce 100644 --- a/app/module/user_roles/repository/user_roles.repository.go +++ b/app/module/user_roles/repository/user_roles.repository.go @@ -1,14 +1,18 @@ package repository import ( + "github.com/rs/zerolog" "go-humas-be/app/database" "go-humas-be/app/database/entity" "go-humas-be/app/module/user_roles/request" "go-humas-be/utils/paginator" + "strings" + "time" ) type userRolesRepository struct { - DB *database.Database + DB *database.Database + Log zerolog.Logger } // UserRolesRepository define interface of IUserRolesRepository @@ -20,9 +24,10 @@ type UserRolesRepository interface { Delete(id uint) (err error) } -func NewUserRolesRepository(db *database.Database) UserRolesRepository { +func NewUserRolesRepository(db *database.Database, log zerolog.Logger) UserRolesRepository { return &userRolesRepository{ - DB: db, + DB: db, + Log: log, } } @@ -31,8 +36,27 @@ func (_i *userRolesRepository) GetAll(req request.UserRolesQueryRequest) (userRo var count int64 query := _i.DB.DB.Model(&entity.UserRoles{}) + query = query.Where("is_active = ?", true) + + if req.Name != nil && *req.Name != "" { + name := strings.ToLower(*req.Name) + query = query.Where("LOWER(name) LIKE ?", "%"+strings.ToLower(name)+"%") + } + if req.Code != nil { + query = query.Where("code = ?", req.Code) + } + if req.LevelNumber != nil { + query = query.Where("level_number = ?", req.LevelNumber) + } + if req.StatusId != nil { + query = query.Where("status_id = ?", req.StatusId) + } query.Count(&count) + _i.Log.Info().Str("timestamp", time.Now(). + Format(time.RFC3339)).Str("Service:userRolesRepository", "UserRoles:GetAll"). + Interface("req query", req).Msg("") + req.Pagination.Count = count req.Pagination = paginator.Paging(req.Pagination) @@ -66,4 +90,4 @@ func (_i *userRolesRepository) Update(id uint, userRoles *entity.UserRoles) (err func (_i *userRolesRepository) Delete(id uint) error { return _i.DB.DB.Delete(&entity.UserRoles{}, id).Error -} \ No newline at end of file +} diff --git a/app/module/user_roles/request/user_roles.request.go b/app/module/user_roles/request/user_roles.request.go index c34255d..4370fd0 100644 --- a/app/module/user_roles/request/user_roles.request.go +++ b/app/module/user_roles/request/user_roles.request.go @@ -3,6 +3,7 @@ package request import ( "go-humas-be/app/database/entity" "go-humas-be/utils/paginator" + "strconv" "time" ) @@ -11,13 +12,11 @@ type UserRolesGeneric interface { } type UserRolesQueryRequest 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"` - CreatedById int `json:"created_by_id" validate:"required"` - IsActive bool `json:"is_active" validate:"required"` + Name *string `json:"name"` + Description *string `json:"description"` + Code *string `json:"code"` + LevelNumber *int `json:"levelNumber"` + StatusId *int `json:"statusId"` Pagination *paginator.Pagination `json:"pagination"` } @@ -26,9 +25,9 @@ type UserRolesCreateRequest struct { 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"` - CreatedById int `json:"created_by_id" validate:"required"` - IsActive bool `json:"is_active" validate:"required"` + StatusId *int `json:"status_id"` + CreatedById *int `json:"created_by_id"` + IsActive *bool `json:"is_active"` } func (req UserRolesCreateRequest) ToEntity() *entity.UserRoles { @@ -44,29 +43,53 @@ func (req UserRolesCreateRequest) ToEntity() *entity.UserRoles { } type UserRolesUpdateRequest struct { - ID uint `json:"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"` - StatusId int `json:"status_id" validate:"required"` - CreatedById int `json:"created_by_id" validate:"required"` - IsActive bool `json:"is_active" validate:"required"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` + 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"` } func (req UserRolesUpdateRequest) ToEntity() *entity.UserRoles { return &entity.UserRoles{ - ID: req.ID, Name: req.Name, Description: req.Description, Code: req.Code, LevelNumber: req.LevelNumber, StatusId: req.StatusId, - CreatedById: req.CreatedById, - IsActive: req.IsActive, - CreatedAt: req.CreatedAt, - UpdatedAt: req.UpdatedAt, + UpdatedAt: time.Now(), } } + +type UserRolesQueryRequestContext struct { + Name string `json:"name"` + Description string `json:"description"` + Code string `json:"code"` + LevelNumber string `json:"levelNumber"` + StatusId string `json:"statusId"` +} + +func (req UserRolesQueryRequestContext) ToParamRequest() UserRolesQueryRequest { + var request UserRolesQueryRequest + + if name := req.Name; name != "" { + request.Name = &name + } + if code := req.Code; code != "" { + request.Code = &code + } + if levelNumberStr := req.LevelNumber; levelNumberStr != "" { + levelNumber, err := strconv.Atoi(levelNumberStr) + if err == nil { + request.LevelNumber = &levelNumber + } + } + if statusIdStr := req.StatusId; statusIdStr != "" { + statusId, err := strconv.Atoi(statusIdStr) + if err == nil { + request.StatusId = &statusId + } + } + + return request +} diff --git a/app/module/user_roles/response/user_roles.response.go b/app/module/user_roles/response/user_roles.response.go index 04157d9..eedc459 100644 --- a/app/module/user_roles/response/user_roles.response.go +++ b/app/module/user_roles/response/user_roles.response.go @@ -3,14 +3,14 @@ package response import "time" type UserRolesResponse struct { - ID uint `json:"id"` - Name string `json:"name"` - Description string `json:"description"` - Code string `json:"code"` - LevelNumber int `json:"level_number"` - StatusId int `json:"status_id"` - CreatedById int `json:"created_by_id"` - IsActive bool `json:"is_active"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` -} \ No newline at end of file + ID uint `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + Code string `json:"code"` + LevelNumber int `json:"level_number"` + StatusId *int `json:"status_id"` + CreatedById *int `json:"created_by_id"` + IsActive *bool `json:"is_active"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` +} diff --git a/app/module/user_roles/service/user_roles.service.go b/app/module/user_roles/service/user_roles.service.go index fe302ac..59e88b7 100644 --- a/app/module/user_roles/service/user_roles.service.go +++ b/app/module/user_roles/service/user_roles.service.go @@ -36,6 +36,7 @@ func NewUserRolesService(repo repository.UserRolesRepository, log zerolog.Logger // All implement interface of UserRolesService func (_i *userRolesService) All(req request.UserRolesQueryRequest) (userRoless []*response.UserRolesResponse, paging paginator.Pagination, err error) { results, paging, err := _i.Repo.GetAll(req) + if err != nil { return } @@ -67,6 +68,13 @@ func (_i *userRolesService) Update(id uint, req request.UserRolesUpdateRequest) return _i.Repo.Update(id, req.ToEntity()) } -func (_i *userRolesService) Delete(id uint) error { - return _i.Repo.Delete(id) +func (_i *userRolesService) Delete(id uint) (err error) { + result, err := _i.Repo.FindOne(id) + if err != nil { + return err + } + + isActive := false + result.IsActive = &isActive + return _i.Repo.Update(id, result) } diff --git a/app/module/users/controller/users.controller.go b/app/module/users/controller/users.controller.go index de80c20..ee58940 100644 --- a/app/module/users/controller/users.controller.go +++ b/app/module/users/controller/users.controller.go @@ -29,11 +29,12 @@ func NewUsersController(usersService service.UsersService) UsersController { } } -// All get all Users +// All Users // @Summary Get all Users // @Description API for getting all Users -// @Tags Task +// @Tags Users // @Security Bearer +// @Param req query request.UsersQueryRequest false "query parameters" // @Success 200 {object} response.Response // @Failure 401 {object} response.Response // @Failure 404 {object} response.Response @@ -46,7 +47,17 @@ func (_i *usersController) All(c *fiber.Ctx) error { return err } - var req request.UsersQueryRequest + reqContext := request.UsersQueryRequestContext{ + Username: c.Query("username"), + Email: c.Query("email"), + Fullname: c.Query("fullname"), + Address: c.Query("address"), + PhoneNumber: c.Query("phoneNumber"), + IdentityNumber: c.Query("identityNumber"), + UserRoleId: c.Query("userRoleId"), + StatusId: c.Query("statusId"), + } + req := reqContext.ToParamRequest() req.Pagination = paginate usersData, paging, err := _i.usersService.All(req) @@ -55,16 +66,17 @@ func (_i *usersController) All(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"Users list successfully retrieved"}, Data: usersData, Meta: paging, }) } -// Show get one Users +// Show Users // @Summary Get one Users // @Description API for getting one Users -// @Tags Task +// @Tags Users // @Security Bearer // @Param id path int true "Users ID" // @Success 200 {object} response.Response @@ -85,17 +97,18 @@ func (_i *usersController) Show(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"Users successfully retrieved"}, Data: usersData, }) } -// Save create Users +// Save Users // @Summary Create Users // @Description API for create Users -// @Tags Task +// @Tags Users // @Security Bearer -// @Body request.UsersCreateRequest +// @Param payload body request.UsersCreateRequest true "Required payload" // @Success 200 {object} response.Response // @Failure 401 {object} response.Response // @Failure 404 {object} response.Response @@ -114,16 +127,17 @@ func (_i *usersController) Save(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"Users successfully created"}, }) } -// Update update Users +// Update Users // @Summary update Users // @Description API for update Users -// @Tags Task +// @Tags Users // @Security Bearer -// @Body request.UsersUpdateRequest +// @Param payload body request.UsersUpdateRequest true "Required payload" // @Param id path int true "Users ID" // @Success 200 {object} response.Response // @Failure 401 {object} response.Response @@ -148,14 +162,15 @@ func (_i *usersController) Update(c *fiber.Ctx) error { } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"Users successfully updated"}, }) } -// Delete delete Users +// Delete Users // @Summary delete Users // @Description API for delete Users -// @Tags Task +// @Tags Users // @Security Bearer // @Param id path int true "Users ID" // @Success 200 {object} response.Response diff --git a/app/module/users/repository/users.repository.go b/app/module/users/repository/users.repository.go index 6d7f193..a53bddf 100644 --- a/app/module/users/repository/users.repository.go +++ b/app/module/users/repository/users.repository.go @@ -1,14 +1,17 @@ package repository import ( + "github.com/rs/zerolog" "go-humas-be/app/database" "go-humas-be/app/database/entity" "go-humas-be/app/module/users/request" "go-humas-be/utils/paginator" + "strings" ) type usersRepository struct { - DB *database.Database + DB *database.Database + Log zerolog.Logger } // UsersRepository define interface of IUsersRepository @@ -20,9 +23,10 @@ type UsersRepository interface { Delete(id uint) (err error) } -func NewUsersRepository(db *database.Database) UsersRepository { +func NewUsersRepository(db *database.Database, log zerolog.Logger) UsersRepository { return &usersRepository{ - DB: db, + DB: db, + Log: log, } } @@ -31,6 +35,31 @@ func (_i *usersRepository) GetAll(req request.UsersQueryRequest) (userss []*enti var count int64 query := _i.DB.DB.Model(&entity.Users{}) + query = query.Where("is_active = ?", true) + + if req.Username != nil && *req.Username != "" { + username := strings.ToLower(*req.Username) + query = query.Where("LOWER(username) LIKE ?", "%"+strings.ToLower(username)+"%") + } + if req.Fullname != nil && *req.Fullname != "" { + fullname := strings.ToLower(*req.Fullname) + query = query.Where("LOWER(fullname) LIKE ?", "%"+strings.ToLower(fullname)+"%") + } + if req.Email != nil && *req.Email != "" { + query = query.Where("email = ?", req.Email) + } + if req.PhoneNumber != nil && *req.PhoneNumber != "" { + query = query.Where("phone_number = ?", req.PhoneNumber) + } + if req.IdentityNumber != nil && *req.IdentityNumber != "" { + query = query.Where("identity_number = ?", req.IdentityNumber) + } + if req.UserRoleId != nil { + query = query.Where("user_role_id = ?", req.UserRoleId) + } + if req.StatusId != nil { + query = query.Where("status_id = ?", req.StatusId) + } query.Count(&count) req.Pagination.Count = count @@ -66,4 +95,4 @@ func (_i *usersRepository) Update(id uint, users *entity.Users) (err error) { func (_i *usersRepository) Delete(id uint) error { return _i.DB.DB.Delete(&entity.Users{}, id).Error -} \ No newline at end of file +} diff --git a/app/module/users/request/users.request.go b/app/module/users/request/users.request.go index b606fac..0fa33a2 100644 --- a/app/module/users/request/users.request.go +++ b/app/module/users/request/users.request.go @@ -3,6 +3,7 @@ package request import ( "go-humas-be/app/database/entity" "go-humas-be/utils/paginator" + "strconv" "time" ) @@ -11,46 +12,35 @@ type UsersGeneric interface { } type UsersQueryRequest struct { - Username string `json:"username" validate:"required,lowercase"` - Email string `json:"email" validate:"required,email"` - Fullname string `json:"fullname" validate:"required"` - Address string `json:"address" validate:"required"` - PhoneNumber string `json:"phone_number" validate:"required"` - WorkType string `json:"work_type" validate:"required"` - GenderType string `json:"gender_type" validate:"required"` - IdentityType string `json:"identity_type" validate:"required"` - IdentityNumber string `json:"identity_number" validate:"required"` - DateOfBirth string `json:"date_of_birth" validate:"required"` - LastEducation string `json:"last_education" validate:"required"` - KeycloakId string `json:"keycloak_id" validate:"required"` - UserRoleId int `json:"user_role_id" validate:"required"` - StatusId int `json:"status_id" validate:"required"` - UserLevelsId int `json:"user_levels_id" validate:"required"` - CreatedById int `json:"created_by_id" validate:"required"` - ProfilePicturePath string `json:"profile_picture_path" validate:"required"` - IsActive bool `json:"is_active" validate:"required"` - Pagination *paginator.Pagination `json:"pagination"` + Username *string `json:"username"` + Email *string `json:"email"` + Fullname *string `json:"fullname"` + PhoneNumber *string `json:"phoneNumber"` + IdentityNumber *string `json:"identityNumber"` + UserRoleId *int `json:"userRoleId"` + StatusId *int `json:"statusId"` + Pagination *paginator.Pagination `json:"pagination"` } type UsersCreateRequest struct { - Username string `json:"username" validate:"required,lowercase"` - Email string `json:"email" validate:"required,email"` - Fullname string `json:"fullname" validate:"required"` - Address string `json:"address" validate:"required"` - PhoneNumber string `json:"phone_number" validate:"required"` - WorkType string `json:"work_type" validate:"required"` - GenderType string `json:"gender_type" validate:"required"` - IdentityType string `json:"identity_type" validate:"required"` - IdentityNumber string `json:"identity_number" validate:"required"` - DateOfBirth string `json:"date_of_birth" validate:"required"` - LastEducation string `json:"last_education" validate:"required"` - KeycloakId string `json:"keycloak_id" validate:"required"` - UserRoleId int `json:"user_role_id" validate:"required"` - StatusId int `json:"status_id" validate:"required"` - UserLevelsId int `json:"user_levels_id" validate:"required"` - CreatedById int `json:"created_by_id" validate:"required"` - ProfilePicturePath string `json:"profile_picture_path" validate:"required"` - IsActive bool `json:"is_active" validate:"required"` + Username string `json:"username" validate:"required,lowercase"` + Email string `json:"email" validate:"required,email"` + Fullname string `json:"fullname" validate:"required"` + Address string `json:"address" validate:"required"` + PhoneNumber string `json:"phoneNumber" validate:"required"` + WorkType string `json:"workType" validate:"required"` + GenderType string `json:"genderType" validate:"required"` + IdentityType string `json:"identityType" validate:"required"` + IdentityNumber string `json:"identityNumber" validate:"required"` + DateOfBirth string `json:"dateOfBirth" validate:"required"` + LastEducation string `json:"lastEducation" validate:"required"` + UserRoleId int `json:"userRoleId" validate:"required"` + UserLevelsId int `json:"userLevelsId" validate:"required"` + KeycloakId *string `json:"keycloakId"` + StatusId *int `json:"statusId"` + CreatedById *int `json:"createdById"` + ProfilePicturePath *string `json:"profilePicturePath"` + IsActive *bool `json:"isActive"` } func (req UsersCreateRequest) ToEntity() *entity.Users { @@ -77,32 +67,25 @@ func (req UsersCreateRequest) ToEntity() *entity.Users { } type UsersUpdateRequest struct { - ID uint `json:"id" validate:"required"` - Username string `json:"username" validate:"required,lowercase"` - Email string `json:"email" validate:"required,email"` - Fullname string `json:"fullname" validate:"required"` - Address string `json:"address" validate:"required"` - PhoneNumber string `json:"phone_number" validate:"required"` - WorkType string `json:"work_type" validate:"required"` - GenderType string `json:"gender_type" validate:"required"` - IdentityType string `json:"identity_type" validate:"required"` - IdentityNumber string `json:"identity_number" validate:"required"` - DateOfBirth string `json:"date_of_birth" validate:"required"` - LastEducation string `json:"last_education" validate:"required"` - KeycloakId string `json:"keycloak_id" validate:"required"` - UserRoleId int `json:"user_role_id" validate:"required"` - StatusId int `json:"status_id" validate:"required"` - UserLevelsId int `json:"user_levels_id" validate:"required"` - CreatedById int `json:"created_by_id" validate:"required"` - ProfilePicturePath string `json:"profile_picture_path" validate:"required"` - IsActive bool `json:"is_active" validate:"required"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` + Username string `json:"username" validate:"required,lowercase"` + Email string `json:"email" validate:"required,email"` + Fullname string `json:"fullname" validate:"required"` + Address string `json:"address" validate:"required"` + PhoneNumber string `json:"phoneNumber" validate:"required"` + WorkType string `json:"workType" validate:"required"` + GenderType string `json:"genderType" validate:"required"` + IdentityType string `json:"identityType" validate:"required"` + IdentityNumber string `json:"identityNumber" validate:"required"` + DateOfBirth string `json:"dateOfBirth" validate:"required"` + LastEducation string `json:"lastEducation" validate:"required"` + UserRoleId int `json:"userRoleId" validate:"required"` + UserLevelsId int `json:"userLevelsId" validate:"required"` + ProfilePicturePath *string `json:"profile_picture_path"` + StatusId *int `json:"status_id"` } func (req UsersUpdateRequest) ToEntity() *entity.Users { return &entity.Users{ - ID: req.ID, Username: req.Username, Email: req.Email, Fullname: req.Fullname, @@ -114,14 +97,55 @@ func (req UsersUpdateRequest) ToEntity() *entity.Users { IdentityNumber: req.IdentityNumber, DateOfBirth: req.DateOfBirth, LastEducation: req.LastEducation, - KeycloakId: req.KeycloakId, UserRoleId: req.UserRoleId, StatusId: req.StatusId, UserLevelsId: req.UserLevelsId, - CreatedById: req.CreatedById, ProfilePicturePath: req.ProfilePicturePath, - IsActive: req.IsActive, - CreatedAt: req.CreatedAt, - UpdatedAt: req.UpdatedAt, + UpdatedAt: time.Now(), } } + +type UsersQueryRequestContext struct { + Username string `json:"username"` + Email string `json:"email"` + Fullname string `json:"fullname"` + Address string `json:"address"` + PhoneNumber string `json:"phoneNumber"` + IdentityNumber string `json:"identityNumber"` + UserRoleId string `json:"userRoleId"` + StatusId string `json:"statusId"` +} + +func (req UsersQueryRequestContext) ToParamRequest() UsersQueryRequest { + var request UsersQueryRequest + + if username := req.Username; username != "" { + request.Username = &username + } + if email := req.Email; email != "" { + request.Email = &email + } + if fullname := req.Fullname; fullname != "" { + request.Fullname = &fullname + } + if phoneNumber := req.PhoneNumber; phoneNumber != "" { + request.PhoneNumber = &phoneNumber + } + if identityNumber := req.IdentityNumber; identityNumber != "" { + request.IdentityNumber = &identityNumber + } + if userRoleIdStr := req.UserRoleId; userRoleIdStr != "" { + userRoleId, err := strconv.Atoi(userRoleIdStr) + if err == nil { + request.UserRoleId = &userRoleId + } + } + if statusIdStr := req.StatusId; statusIdStr != "" { + statusId, err := strconv.Atoi(statusIdStr) + if err == nil { + request.StatusId = &statusId + } + } + + return request +} diff --git a/app/module/users/response/users.response.go b/app/module/users/response/users.response.go index 60a7eb6..d15a3de 100644 --- a/app/module/users/response/users.response.go +++ b/app/module/users/response/users.response.go @@ -3,25 +3,25 @@ package response import "time" type UsersResponse struct { - ID uint `json:"id"` - Username string `json:"username"` - Email string `json:"email"` - Fullname string `json:"fullname"` - Address string `json:"address"` - PhoneNumber string `json:"phone_number"` - WorkType string `json:"work_type"` - GenderType string `json:"gender_type"` - IdentityType string `json:"identity_type"` - IdentityNumber string `json:"identity_number"` - DateOfBirth string `json:"date_of_birth"` - LastEducation string `json:"last_education"` - KeycloakId string `json:"keycloak_id"` - UserRoleId int `json:"user_role_id"` - StatusId int `json:"status_id"` - UserLevelsId int `json:"user_levels_id"` - CreatedById int `json:"created_by_id"` - ProfilePicturePath string `json:"profile_picture_path"` - IsActive bool `json:"is_active"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` -} \ No newline at end of file + ID uint `json:"id"` + Username string `json:"username"` + Email string `json:"email"` + Fullname string `json:"fullname"` + Address string `json:"address"` + PhoneNumber string `json:"phone_number"` + WorkType string `json:"work_type"` + GenderType string `json:"gender_type"` + IdentityType string `json:"identity_type"` + IdentityNumber string `json:"identity_number"` + DateOfBirth string `json:"date_of_birth"` + LastEducation string `json:"last_education"` + KeycloakId *string `json:"keycloak_id"` + UserRoleId int `json:"user_role_id"` + StatusId *int `json:"status_id"` + UserLevelsId int `json:"user_levels_id"` + CreatedById *int `json:"created_by_id"` + ProfilePicturePath *string `json:"profile_picture_path"` + IsActive *bool `json:"is_active"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` +} diff --git a/app/module/users/service/users.service.go b/app/module/users/service/users.service.go index 8fc0295..ca83c3f 100644 --- a/app/module/users/service/users.service.go +++ b/app/module/users/service/users.service.go @@ -34,14 +34,14 @@ func NewUsersService(repo repository.UsersRepository, log zerolog.Logger) UsersS } // All implement interface of UsersService -func (_i *usersService) All(req request.UsersQueryRequest) (userss []*response.UsersResponse, paging paginator.Pagination, err error) { +func (_i *usersService) All(req request.UsersQueryRequest) (users []*response.UsersResponse, paging paginator.Pagination, err error) { results, paging, err := _i.Repo.GetAll(req) if err != nil { return } for _, result := range results { - userss = append(userss, mapper.UsersResponseMapper(result)) + users = append(users, mapper.UsersResponseMapper(result)) } return @@ -68,5 +68,12 @@ func (_i *usersService) Update(id uint, req request.UsersUpdateRequest) (err err } func (_i *usersService) Delete(id uint) error { - return _i.Repo.Delete(id) + result, err := _i.Repo.FindOne(id) + if err != nil { + return err + } + + isActive := false + result.IsActive = &isActive + return _i.Repo.Update(id, result) } diff --git a/app/router/api.go b/app/router/api.go index 6b4c920..1dd57c9 100644 --- a/app/router/api.go +++ b/app/router/api.go @@ -119,4 +119,5 @@ func (r *Router) Register() { r.UserLevelsRouter.RegisterUserLevelsRoutes() r.UserRoleAccessesRouter.RegisterUserRoleAccessesRoutes() r.UsersRouter.RegisterUsersRoutes() + r.UserRolesRouter.RegisterUserRolesRoutes() } diff --git a/config/toml/config.toml b/config/toml/config.toml index 138f6cf..e52db32 100644 --- a/config/toml/config.toml +++ b/config/toml/config.toml @@ -9,7 +9,7 @@ production = false [db.postgres] dsn = "postgresql://humas_polri:P@ssw0rd.1@103.82.242.92:5432/humas_polri" # ://:@:/ -migrate = true +migrate = false seed = false [logger] diff --git a/docs/swagger/docs.go b/docs/swagger/docs.go index befed6a..a77067e 100644 --- a/docs/swagger/docs.go +++ b/docs/swagger/docs.go @@ -3948,9 +3948,31 @@ const docTemplate = `{ ], "description": "API for getting all UserLevels", "tags": [ - "Task" + "UserLevels" ], "summary": "Get all UserLevels", + "parameters": [ + { + "type": "integer", + "name": "levelNumber", + "in": "query" + }, + { + "type": "string", + "name": "name", + "in": "query" + }, + { + "type": "integer", + "name": "parentLevelId", + "in": "query" + }, + { + "type": "integer", + "name": "provinceId", + "in": "query" + } + ], "responses": { "200": { "description": "OK", @@ -3992,9 +4014,20 @@ const docTemplate = `{ ], "description": "API for create UserLevels", "tags": [ - "Task" + "UserLevels" ], "summary": "Create UserLevels", + "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UserLevelsCreateRequest" + } + } + ], "responses": { "200": { "description": "OK", @@ -4038,7 +4071,7 @@ const docTemplate = `{ ], "description": "API for getting one UserLevels", "tags": [ - "Task" + "UserLevels" ], "summary": "Get one UserLevels", "parameters": [ @@ -4091,10 +4124,19 @@ const docTemplate = `{ ], "description": "API for update UserLevels", "tags": [ - "Task" + "UserLevels" ], "summary": "update UserLevels", "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UserLevelsUpdateRequest" + } + }, { "type": "integer", "description": "UserLevels ID", @@ -4144,7 +4186,7 @@ const docTemplate = `{ ], "description": "API for delete UserLevels", "tags": [ - "Task" + "UserLevels" ], "summary": "delete UserLevels", "parameters": [ @@ -4450,9 +4492,36 @@ const docTemplate = `{ ], "description": "API for getting all UserRoles", "tags": [ - "Task" + "UserRoles" ], "summary": "Get all UserRoles", + "parameters": [ + { + "type": "string", + "name": "code", + "in": "query" + }, + { + "type": "string", + "name": "description", + "in": "query" + }, + { + "type": "integer", + "name": "levelNumber", + "in": "query" + }, + { + "type": "string", + "name": "name", + "in": "query" + }, + { + "type": "integer", + "name": "statusId", + "in": "query" + } + ], "responses": { "200": { "description": "OK", @@ -4494,9 +4563,20 @@ const docTemplate = `{ ], "description": "API for create UserRoles", "tags": [ - "Task" + "UserRoles" ], "summary": "Create UserRoles", + "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UserRolesCreateRequest" + } + } + ], "responses": { "200": { "description": "OK", @@ -4540,7 +4620,7 @@ const docTemplate = `{ ], "description": "API for getting one UserRoles", "tags": [ - "Task" + "UserRoles" ], "summary": "Get one UserRoles", "parameters": [ @@ -4593,10 +4673,19 @@ const docTemplate = `{ ], "description": "API for update UserRoles", "tags": [ - "Task" + "UserRoles" ], "summary": "update UserRoles", "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UserRolesUpdateRequest" + } + }, { "type": "integer", "description": "UserRoles ID", @@ -4646,7 +4735,7 @@ const docTemplate = `{ ], "description": "API for delete UserRoles", "tags": [ - "Task" + "UserRoles" ], "summary": "delete UserRoles", "parameters": [ @@ -4701,9 +4790,46 @@ const docTemplate = `{ ], "description": "API for getting all Users", "tags": [ - "Task" + "Users" ], "summary": "Get all Users", + "parameters": [ + { + "type": "string", + "name": "email", + "in": "query" + }, + { + "type": "string", + "name": "fullname", + "in": "query" + }, + { + "type": "string", + "name": "identityNumber", + "in": "query" + }, + { + "type": "string", + "name": "phoneNumber", + "in": "query" + }, + { + "type": "integer", + "name": "statusId", + "in": "query" + }, + { + "type": "integer", + "name": "userRoleId", + "in": "query" + }, + { + "type": "string", + "name": "username", + "in": "query" + } + ], "responses": { "200": { "description": "OK", @@ -4745,9 +4871,20 @@ const docTemplate = `{ ], "description": "API for create Users", "tags": [ - "Task" + "Users" ], "summary": "Create Users", + "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UsersCreateRequest" + } + } + ], "responses": { "200": { "description": "OK", @@ -4791,7 +4928,7 @@ const docTemplate = `{ ], "description": "API for getting one Users", "tags": [ - "Task" + "Users" ], "summary": "Get one Users", "parameters": [ @@ -4844,10 +4981,19 @@ const docTemplate = `{ ], "description": "API for update Users", "tags": [ - "Task" + "Users" ], "summary": "update Users", "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UsersUpdateRequest" + } + }, { "type": "integer", "description": "Users ID", @@ -4897,7 +5043,7 @@ const docTemplate = `{ ], "description": "API for delete Users", "tags": [ - "Task" + "Users" ], "summary": "delete Users", "parameters": [ @@ -4945,6 +5091,29 @@ const docTemplate = `{ } }, "definitions": { + "paginator.Pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "nextPage": { + "type": "integer" + }, + "page": { + "type": "integer" + }, + "previousPage": { + "type": "integer" + }, + "totalPage": { + "type": "integer" + } + } + }, "request.ArticleCategoriesCreateRequest": { "type": "object", "required": [ @@ -5030,6 +5199,260 @@ const docTemplate = `{ } } }, + "request.UserLevelsCreateRequest": { + "type": "object", + "required": [ + "aliasName", + "levelNumber", + "name", + "parentLevelId", + "provinceId" + ], + "properties": { + "aliasName": { + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "levelNumber": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "parentLevelId": { + "type": "integer" + }, + "provinceId": { + "type": "integer" + } + } + }, + "request.UserLevelsUpdateRequest": { + "type": "object", + "required": [ + "aliasName", + "levelNumber", + "name", + "parentLevelId", + "provinceId" + ], + "properties": { + "aliasName": { + "type": "string" + }, + "levelNumber": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "parentLevelId": { + "type": "integer" + }, + "provinceId": { + "type": "integer" + } + } + }, + "request.UserRolesCreateRequest": { + "type": "object", + "required": [ + "code", + "description", + "level_number", + "name" + ], + "properties": { + "code": { + "type": "string" + }, + "created_by_id": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "level_number": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "status_id": { + "type": "integer" + } + } + }, + "request.UserRolesUpdateRequest": { + "type": "object", + "required": [ + "code", + "description", + "level_number", + "name" + ], + "properties": { + "code": { + "type": "string" + }, + "description": { + "type": "string" + }, + "level_number": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "status_id": { + "type": "integer" + } + } + }, + "request.UsersCreateRequest": { + "type": "object", + "required": [ + "address", + "dateOfBirth", + "email", + "fullname", + "genderType", + "identityNumber", + "identityType", + "lastEducation", + "phoneNumber", + "userLevelsId", + "userRoleId", + "username", + "workType" + ], + "properties": { + "address": { + "type": "string" + }, + "createdById": { + "type": "integer" + }, + "dateOfBirth": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fullname": { + "type": "string" + }, + "genderType": { + "type": "string" + }, + "identityNumber": { + "type": "string" + }, + "identityType": { + "type": "string" + }, + "isActive": { + "type": "boolean" + }, + "keycloakId": { + "type": "string" + }, + "lastEducation": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "profilePicturePath": { + "type": "string" + }, + "statusId": { + "type": "integer" + }, + "userLevelsId": { + "type": "integer" + }, + "userRoleId": { + "type": "integer" + }, + "username": { + "type": "string" + }, + "workType": { + "type": "string" + } + } + }, + "request.UsersUpdateRequest": { + "type": "object", + "required": [ + "address", + "dateOfBirth", + "email", + "fullname", + "genderType", + "identityNumber", + "identityType", + "lastEducation", + "phoneNumber", + "userLevelsId", + "userRoleId", + "username", + "workType" + ], + "properties": { + "address": { + "type": "string" + }, + "dateOfBirth": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fullname": { + "type": "string" + }, + "genderType": { + "type": "string" + }, + "identityNumber": { + "type": "string" + }, + "identityType": { + "type": "string" + }, + "lastEducation": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "profile_picture_path": { + "type": "string" + }, + "status_id": { + "type": "integer" + }, + "userLevelsId": { + "type": "integer" + }, + "userRoleId": { + "type": "integer" + }, + "username": { + "type": "string" + }, + "workType": { + "type": "string" + } + } + }, "response.Response": { "type": "object", "properties": { diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index 66b26e5..1a759ee 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -3937,9 +3937,31 @@ ], "description": "API for getting all UserLevels", "tags": [ - "Task" + "UserLevels" ], "summary": "Get all UserLevels", + "parameters": [ + { + "type": "integer", + "name": "levelNumber", + "in": "query" + }, + { + "type": "string", + "name": "name", + "in": "query" + }, + { + "type": "integer", + "name": "parentLevelId", + "in": "query" + }, + { + "type": "integer", + "name": "provinceId", + "in": "query" + } + ], "responses": { "200": { "description": "OK", @@ -3981,9 +4003,20 @@ ], "description": "API for create UserLevels", "tags": [ - "Task" + "UserLevels" ], "summary": "Create UserLevels", + "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UserLevelsCreateRequest" + } + } + ], "responses": { "200": { "description": "OK", @@ -4027,7 +4060,7 @@ ], "description": "API for getting one UserLevels", "tags": [ - "Task" + "UserLevels" ], "summary": "Get one UserLevels", "parameters": [ @@ -4080,10 +4113,19 @@ ], "description": "API for update UserLevels", "tags": [ - "Task" + "UserLevels" ], "summary": "update UserLevels", "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UserLevelsUpdateRequest" + } + }, { "type": "integer", "description": "UserLevels ID", @@ -4133,7 +4175,7 @@ ], "description": "API for delete UserLevels", "tags": [ - "Task" + "UserLevels" ], "summary": "delete UserLevels", "parameters": [ @@ -4439,9 +4481,36 @@ ], "description": "API for getting all UserRoles", "tags": [ - "Task" + "UserRoles" ], "summary": "Get all UserRoles", + "parameters": [ + { + "type": "string", + "name": "code", + "in": "query" + }, + { + "type": "string", + "name": "description", + "in": "query" + }, + { + "type": "integer", + "name": "levelNumber", + "in": "query" + }, + { + "type": "string", + "name": "name", + "in": "query" + }, + { + "type": "integer", + "name": "statusId", + "in": "query" + } + ], "responses": { "200": { "description": "OK", @@ -4483,9 +4552,20 @@ ], "description": "API for create UserRoles", "tags": [ - "Task" + "UserRoles" ], "summary": "Create UserRoles", + "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UserRolesCreateRequest" + } + } + ], "responses": { "200": { "description": "OK", @@ -4529,7 +4609,7 @@ ], "description": "API for getting one UserRoles", "tags": [ - "Task" + "UserRoles" ], "summary": "Get one UserRoles", "parameters": [ @@ -4582,10 +4662,19 @@ ], "description": "API for update UserRoles", "tags": [ - "Task" + "UserRoles" ], "summary": "update UserRoles", "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UserRolesUpdateRequest" + } + }, { "type": "integer", "description": "UserRoles ID", @@ -4635,7 +4724,7 @@ ], "description": "API for delete UserRoles", "tags": [ - "Task" + "UserRoles" ], "summary": "delete UserRoles", "parameters": [ @@ -4690,9 +4779,46 @@ ], "description": "API for getting all Users", "tags": [ - "Task" + "Users" ], "summary": "Get all Users", + "parameters": [ + { + "type": "string", + "name": "email", + "in": "query" + }, + { + "type": "string", + "name": "fullname", + "in": "query" + }, + { + "type": "string", + "name": "identityNumber", + "in": "query" + }, + { + "type": "string", + "name": "phoneNumber", + "in": "query" + }, + { + "type": "integer", + "name": "statusId", + "in": "query" + }, + { + "type": "integer", + "name": "userRoleId", + "in": "query" + }, + { + "type": "string", + "name": "username", + "in": "query" + } + ], "responses": { "200": { "description": "OK", @@ -4734,9 +4860,20 @@ ], "description": "API for create Users", "tags": [ - "Task" + "Users" ], "summary": "Create Users", + "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UsersCreateRequest" + } + } + ], "responses": { "200": { "description": "OK", @@ -4780,7 +4917,7 @@ ], "description": "API for getting one Users", "tags": [ - "Task" + "Users" ], "summary": "Get one Users", "parameters": [ @@ -4833,10 +4970,19 @@ ], "description": "API for update Users", "tags": [ - "Task" + "Users" ], "summary": "update Users", "parameters": [ + { + "description": "Required payload", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.UsersUpdateRequest" + } + }, { "type": "integer", "description": "Users ID", @@ -4886,7 +5032,7 @@ ], "description": "API for delete Users", "tags": [ - "Task" + "Users" ], "summary": "delete Users", "parameters": [ @@ -4934,6 +5080,29 @@ } }, "definitions": { + "paginator.Pagination": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "limit": { + "type": "integer" + }, + "nextPage": { + "type": "integer" + }, + "page": { + "type": "integer" + }, + "previousPage": { + "type": "integer" + }, + "totalPage": { + "type": "integer" + } + } + }, "request.ArticleCategoriesCreateRequest": { "type": "object", "required": [ @@ -5019,6 +5188,260 @@ } } }, + "request.UserLevelsCreateRequest": { + "type": "object", + "required": [ + "aliasName", + "levelNumber", + "name", + "parentLevelId", + "provinceId" + ], + "properties": { + "aliasName": { + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "levelNumber": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "parentLevelId": { + "type": "integer" + }, + "provinceId": { + "type": "integer" + } + } + }, + "request.UserLevelsUpdateRequest": { + "type": "object", + "required": [ + "aliasName", + "levelNumber", + "name", + "parentLevelId", + "provinceId" + ], + "properties": { + "aliasName": { + "type": "string" + }, + "levelNumber": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "parentLevelId": { + "type": "integer" + }, + "provinceId": { + "type": "integer" + } + } + }, + "request.UserRolesCreateRequest": { + "type": "object", + "required": [ + "code", + "description", + "level_number", + "name" + ], + "properties": { + "code": { + "type": "string" + }, + "created_by_id": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "is_active": { + "type": "boolean" + }, + "level_number": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "status_id": { + "type": "integer" + } + } + }, + "request.UserRolesUpdateRequest": { + "type": "object", + "required": [ + "code", + "description", + "level_number", + "name" + ], + "properties": { + "code": { + "type": "string" + }, + "description": { + "type": "string" + }, + "level_number": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "status_id": { + "type": "integer" + } + } + }, + "request.UsersCreateRequest": { + "type": "object", + "required": [ + "address", + "dateOfBirth", + "email", + "fullname", + "genderType", + "identityNumber", + "identityType", + "lastEducation", + "phoneNumber", + "userLevelsId", + "userRoleId", + "username", + "workType" + ], + "properties": { + "address": { + "type": "string" + }, + "createdById": { + "type": "integer" + }, + "dateOfBirth": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fullname": { + "type": "string" + }, + "genderType": { + "type": "string" + }, + "identityNumber": { + "type": "string" + }, + "identityType": { + "type": "string" + }, + "isActive": { + "type": "boolean" + }, + "keycloakId": { + "type": "string" + }, + "lastEducation": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "profilePicturePath": { + "type": "string" + }, + "statusId": { + "type": "integer" + }, + "userLevelsId": { + "type": "integer" + }, + "userRoleId": { + "type": "integer" + }, + "username": { + "type": "string" + }, + "workType": { + "type": "string" + } + } + }, + "request.UsersUpdateRequest": { + "type": "object", + "required": [ + "address", + "dateOfBirth", + "email", + "fullname", + "genderType", + "identityNumber", + "identityType", + "lastEducation", + "phoneNumber", + "userLevelsId", + "userRoleId", + "username", + "workType" + ], + "properties": { + "address": { + "type": "string" + }, + "dateOfBirth": { + "type": "string" + }, + "email": { + "type": "string" + }, + "fullname": { + "type": "string" + }, + "genderType": { + "type": "string" + }, + "identityNumber": { + "type": "string" + }, + "identityType": { + "type": "string" + }, + "lastEducation": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "profile_picture_path": { + "type": "string" + }, + "status_id": { + "type": "integer" + }, + "userLevelsId": { + "type": "integer" + }, + "userRoleId": { + "type": "integer" + }, + "username": { + "type": "string" + }, + "workType": { + "type": "string" + } + } + }, "response.Response": { "type": "object", "properties": { diff --git a/docs/swagger/swagger.yaml b/docs/swagger/swagger.yaml index 9fa60f4..ba9af02 100644 --- a/docs/swagger/swagger.yaml +++ b/docs/swagger/swagger.yaml @@ -1,4 +1,19 @@ definitions: + paginator.Pagination: + properties: + count: + type: integer + limit: + type: integer + nextPage: + type: integer + page: + type: integer + previousPage: + type: integer + totalPage: + type: integer + type: object request.ArticleCategoriesCreateRequest: properties: created_by_id: @@ -59,6 +74,186 @@ definitions: - id - prov_id type: object + request.UserLevelsCreateRequest: + properties: + aliasName: + type: string + is_active: + type: boolean + levelNumber: + type: integer + name: + type: string + parentLevelId: + type: integer + provinceId: + type: integer + required: + - aliasName + - levelNumber + - name + - parentLevelId + - provinceId + type: object + request.UserLevelsUpdateRequest: + properties: + aliasName: + type: string + levelNumber: + type: integer + name: + type: string + parentLevelId: + type: integer + provinceId: + type: integer + required: + - aliasName + - levelNumber + - name + - parentLevelId + - provinceId + type: object + request.UserRolesCreateRequest: + properties: + code: + type: string + created_by_id: + type: integer + description: + type: string + is_active: + type: boolean + level_number: + type: integer + name: + type: string + status_id: + type: integer + required: + - code + - description + - level_number + - name + type: object + request.UserRolesUpdateRequest: + properties: + code: + type: string + description: + type: string + level_number: + type: integer + name: + type: string + status_id: + type: integer + required: + - code + - description + - level_number + - name + type: object + request.UsersCreateRequest: + properties: + address: + type: string + createdById: + type: integer + dateOfBirth: + type: string + email: + type: string + fullname: + type: string + genderType: + type: string + identityNumber: + type: string + identityType: + type: string + isActive: + type: boolean + keycloakId: + type: string + lastEducation: + type: string + phoneNumber: + type: string + profilePicturePath: + type: string + statusId: + type: integer + userLevelsId: + type: integer + userRoleId: + type: integer + username: + type: string + workType: + type: string + required: + - address + - dateOfBirth + - email + - fullname + - genderType + - identityNumber + - identityType + - lastEducation + - phoneNumber + - userLevelsId + - userRoleId + - username + - workType + type: object + request.UsersUpdateRequest: + properties: + address: + type: string + dateOfBirth: + type: string + email: + type: string + fullname: + type: string + genderType: + type: string + identityNumber: + type: string + identityType: + type: string + lastEducation: + type: string + phoneNumber: + type: string + profile_picture_path: + type: string + status_id: + type: integer + userLevelsId: + type: integer + userRoleId: + type: integer + username: + type: string + workType: + type: string + required: + - address + - dateOfBirth + - email + - fullname + - genderType + - identityNumber + - identityType + - lastEducation + - phoneNumber + - userLevelsId + - userRoleId + - username + - workType + type: object response.Response: properties: code: @@ -2579,6 +2774,19 @@ paths: /user-levels: get: description: API for getting all UserLevels + parameters: + - in: query + name: levelNumber + type: integer + - in: query + name: name + type: string + - in: query + name: parentLevelId + type: integer + - in: query + name: provinceId + type: integer responses: "200": description: OK @@ -2604,9 +2812,16 @@ paths: - Bearer: [] summary: Get all UserLevels tags: - - Task + - UserLevels post: description: API for create UserLevels + parameters: + - description: Required payload + in: body + name: payload + required: true + schema: + $ref: '#/definitions/request.UserLevelsCreateRequest' responses: "200": description: OK @@ -2632,7 +2847,7 @@ paths: - Bearer: [] summary: Create UserLevels tags: - - Task + - UserLevels /user-levels/{id}: delete: description: API for delete UserLevels @@ -2667,7 +2882,7 @@ paths: - Bearer: [] summary: delete UserLevels tags: - - Task + - UserLevels get: description: API for getting one UserLevels parameters: @@ -2701,10 +2916,16 @@ paths: - Bearer: [] summary: Get one UserLevels tags: - - Task + - UserLevels put: description: API for update UserLevels parameters: + - description: Required payload + in: body + name: payload + required: true + schema: + $ref: '#/definitions/request.UserLevelsUpdateRequest' - description: UserLevels ID in: path name: id @@ -2735,7 +2956,7 @@ paths: - Bearer: [] summary: update UserLevels tags: - - Task + - UserLevels /user-role-accesses: get: description: API for getting all UserRoleAccesses @@ -2899,6 +3120,22 @@ paths: /user-roles: get: description: API for getting all UserRoles + parameters: + - in: query + name: code + type: string + - in: query + name: description + type: string + - in: query + name: levelNumber + type: integer + - in: query + name: name + type: string + - in: query + name: statusId + type: integer responses: "200": description: OK @@ -2924,9 +3161,16 @@ paths: - Bearer: [] summary: Get all UserRoles tags: - - Task + - UserRoles post: description: API for create UserRoles + parameters: + - description: Required payload + in: body + name: payload + required: true + schema: + $ref: '#/definitions/request.UserRolesCreateRequest' responses: "200": description: OK @@ -2952,7 +3196,7 @@ paths: - Bearer: [] summary: Create UserRoles tags: - - Task + - UserRoles /user-roles/{id}: delete: description: API for delete UserRoles @@ -2987,7 +3231,7 @@ paths: - Bearer: [] summary: delete UserRoles tags: - - Task + - UserRoles get: description: API for getting one UserRoles parameters: @@ -3021,10 +3265,16 @@ paths: - Bearer: [] summary: Get one UserRoles tags: - - Task + - UserRoles put: description: API for update UserRoles parameters: + - description: Required payload + in: body + name: payload + required: true + schema: + $ref: '#/definitions/request.UserRolesUpdateRequest' - description: UserRoles ID in: path name: id @@ -3055,10 +3305,32 @@ paths: - Bearer: [] summary: update UserRoles tags: - - Task + - UserRoles /users: get: description: API for getting all Users + parameters: + - in: query + name: email + type: string + - in: query + name: fullname + type: string + - in: query + name: identityNumber + type: string + - in: query + name: phoneNumber + type: string + - in: query + name: statusId + type: integer + - in: query + name: userRoleId + type: integer + - in: query + name: username + type: string responses: "200": description: OK @@ -3084,9 +3356,16 @@ paths: - Bearer: [] summary: Get all Users tags: - - Task + - Users post: description: API for create Users + parameters: + - description: Required payload + in: body + name: payload + required: true + schema: + $ref: '#/definitions/request.UsersCreateRequest' responses: "200": description: OK @@ -3112,7 +3391,7 @@ paths: - Bearer: [] summary: Create Users tags: - - Task + - Users /users/{id}: delete: description: API for delete Users @@ -3147,7 +3426,7 @@ paths: - Bearer: [] summary: delete Users tags: - - Task + - Users get: description: API for getting one Users parameters: @@ -3181,10 +3460,16 @@ paths: - Bearer: [] summary: Get one Users tags: - - Task + - Users put: description: API for update Users parameters: + - description: Required payload + in: body + name: payload + required: true + schema: + $ref: '#/definitions/request.UsersUpdateRequest' - description: Users ID in: path name: id @@ -3215,5 +3500,5 @@ paths: - Bearer: [] summary: update Users tags: - - Task + - Users swagger: "2.0" diff --git a/utils/paginator/index.paginator.go b/utils/paginator/index.paginator.go index 0e84e43..4f2b64b 100644 --- a/utils/paginator/index.paginator.go +++ b/utils/paginator/index.paginator.go @@ -15,10 +15,10 @@ type Pagination struct { Limit int `json:"limit,omitempty"` Offset int `json:"-"` Page int `json:"page,omitempty"` - NextPage int `json:"next_page,omitempty"` - PreviousPage int `json:"previous_page,omitempty"` + NextPage int `json:"nextPage,omitempty"` + PreviousPage int `json:"previousPage,omitempty"` Count int64 `json:"count,omitempty"` - TotalPage int `json:"total_page,omitempty"` + TotalPage int `json:"totalPage,omitempty"` } func Paging(p *Pagination) *Pagination {