feat: update ppid data categories and ppid data
This commit is contained in:
parent
87acf93075
commit
a0bedfc6ee
|
|
@ -8,6 +8,8 @@ type PpidDataCategories struct {
|
||||||
Description string `json:"description" gorm:"type:varchar"`
|
Description string `json:"description" gorm:"type:varchar"`
|
||||||
Slug string `json:"slug" gorm:"type:varchar"`
|
Slug string `json:"slug" gorm:"type:varchar"`
|
||||||
ParentId *uint `json:"parent_id" gorm:"type:int4"`
|
ParentId *uint `json:"parent_id" gorm:"type:int4"`
|
||||||
|
CreatedById *uint `json:"created_by_id" gorm:"type:int4"`
|
||||||
|
LevelGroupId *uint `json:"level_group_id" gorm:"type:int4"`
|
||||||
Position *int `json:"position" gorm:"type:int4"`
|
Position *int `json:"position" gorm:"type:int4"`
|
||||||
ThumbnailPath *string `json:"thumbnail_path" gorm:"type:varchar"`
|
ThumbnailPath *string `json:"thumbnail_path" gorm:"type:varchar"`
|
||||||
ThumbnailUrl *string `json:"thumbnail_url" gorm:"type:varchar"`
|
ThumbnailUrl *string `json:"thumbnail_url" gorm:"type:varchar"`
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ func (_i *ppidDataCategoriesController) All(c *fiber.Ctx) error {
|
||||||
Description: c.Query("description"),
|
Description: c.Query("description"),
|
||||||
ParentId: c.Query("parentId"),
|
ParentId: c.Query("parentId"),
|
||||||
IsOnlyTop: c.Query("isOnlyTop"),
|
IsOnlyTop: c.Query("isOnlyTop"),
|
||||||
|
LevelGroup: c.Query("levelGroup"),
|
||||||
IsPpidDataIncluded: c.Query("isPpidDataIncluded"),
|
IsPpidDataIncluded: c.Query("isPpidDataIncluded"),
|
||||||
}
|
}
|
||||||
req := reqContext.ToParamRequest()
|
req := reqContext.ToParamRequest()
|
||||||
|
|
@ -160,6 +161,7 @@ func (_i *ppidDataCategoriesController) ShowBySlug(c *fiber.Ctx) error {
|
||||||
// @Description API for create PpidDataCategories
|
// @Description API for create PpidDataCategories
|
||||||
// @Tags PPID Categories
|
// @Tags PPID Categories
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
|
// @Param Authorization header string true "Insert your access token" default (Bearer <Add access token here>)
|
||||||
// @Param payload body request.PpidDataCategoriesCreateRequest true "Required payload"
|
// @Param payload body request.PpidDataCategoriesCreateRequest true "Required payload"
|
||||||
// @Success 200 {object} response.Response
|
// @Success 200 {object} response.Response
|
||||||
// @Failure 400 {object} response.BadRequestError
|
// @Failure 400 {object} response.BadRequestError
|
||||||
|
|
@ -172,7 +174,8 @@ func (_i *ppidDataCategoriesController) Save(c *fiber.Ctx) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err := _i.ppidDataCategoriesService.Save(*req)
|
authToken := c.Get("Authorization")
|
||||||
|
err := _i.ppidDataCategoriesService.Save(*req, authToken)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,9 @@ func (_i *ppidDataCategoriesRepository) GetAll(req request.PpidDataCategoriesQue
|
||||||
if req.ParentId != nil {
|
if req.ParentId != nil {
|
||||||
query = query.Where("parent_id = ?", req.ParentId)
|
query = query.Where("parent_id = ?", req.ParentId)
|
||||||
}
|
}
|
||||||
|
if req.LevelGroupId != nil {
|
||||||
|
query = query.Where("level_group_id = ?", req.LevelGroupId)
|
||||||
|
}
|
||||||
if req.IsOnlyTop != nil {
|
if req.IsOnlyTop != nil {
|
||||||
if *req.IsOnlyTop == true {
|
if *req.IsOnlyTop == true {
|
||||||
query = query.Where("parent_id IS NULL")
|
query = query.Where("parent_id IS NULL")
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,8 @@ type PpidDataCategoriesQueryRequest struct {
|
||||||
IsOnlyTop *bool `json:"isOnlyTop"`
|
IsOnlyTop *bool `json:"isOnlyTop"`
|
||||||
IsPpidDataIncluded *bool `json:"isPpidDataIncluded"`
|
IsPpidDataIncluded *bool `json:"isPpidDataIncluded"`
|
||||||
ParentId *uint `json:"parentId"`
|
ParentId *uint `json:"parentId"`
|
||||||
|
LevelGroup *string `json:"levelGroup"`
|
||||||
|
LevelGroupId *uint `json:"levelGroupId"`
|
||||||
Pagination *paginator.Pagination `json:"pagination"`
|
Pagination *paginator.Pagination `json:"pagination"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -77,6 +79,8 @@ type PpidDataCategoriesQueryRequestContext struct {
|
||||||
Description string `json:"description"`
|
Description string `json:"description"`
|
||||||
IsOnlyTop string `json:"isOnlyTop"`
|
IsOnlyTop string `json:"isOnlyTop"`
|
||||||
IsPpidDataIncluded string `json:"isPpidDataIncluded"`
|
IsPpidDataIncluded string `json:"isPpidDataIncluded"`
|
||||||
|
LevelGroup string `json:"levelGroup"`
|
||||||
|
LevelGroupId string `json:"levelGroupId"`
|
||||||
ParentId string `json:"parentId"`
|
ParentId string `json:"parentId"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -102,6 +106,16 @@ func (req PpidDataCategoriesQueryRequestContext) ToParamRequest() PpidDataCatego
|
||||||
request.IsOnlyTop = &isOnlyTop
|
request.IsOnlyTop = &isOnlyTop
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if levelGroup := req.LevelGroup; levelGroup != "" {
|
||||||
|
request.LevelGroup = &levelGroup
|
||||||
|
}
|
||||||
|
if levelGroupIdStr := req.LevelGroupId; levelGroupIdStr != "" {
|
||||||
|
levelGroupId, err := strconv.ParseUint(levelGroupIdStr, 10, 0)
|
||||||
|
levelGroupIdUint := uint(levelGroupId)
|
||||||
|
if err == nil {
|
||||||
|
request.LevelGroupId = &levelGroupIdUint
|
||||||
|
}
|
||||||
|
}
|
||||||
if isPpidDataIncludedStr := req.IsPpidDataIncluded; isPpidDataIncludedStr != "" {
|
if isPpidDataIncludedStr := req.IsPpidDataIncluded; isPpidDataIncludedStr != "" {
|
||||||
isPpidDataIncluded, err := strconv.ParseBool(isPpidDataIncludedStr)
|
isPpidDataIncluded, err := strconv.ParseBool(isPpidDataIncludedStr)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,11 @@ import (
|
||||||
"go-humas-be/app/module/ppid_data_categories/response"
|
"go-humas-be/app/module/ppid_data_categories/response"
|
||||||
ppidDataFilesRepository "go-humas-be/app/module/ppid_data_files/repository"
|
ppidDataFilesRepository "go-humas-be/app/module/ppid_data_files/repository"
|
||||||
ppidDatasRepository "go-humas-be/app/module/ppid_datas/repository"
|
ppidDatasRepository "go-humas-be/app/module/ppid_datas/repository"
|
||||||
|
userLevelsRepository "go-humas-be/app/module/user_levels/repository"
|
||||||
usersRepository "go-humas-be/app/module/users/repository"
|
usersRepository "go-humas-be/app/module/users/repository"
|
||||||
config "go-humas-be/config/config"
|
config "go-humas-be/config/config"
|
||||||
"go-humas-be/utils/paginator"
|
"go-humas-be/utils/paginator"
|
||||||
|
utilSvc "go-humas-be/utils/service"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
|
@ -31,6 +33,7 @@ type ppidDataCategoriesService struct {
|
||||||
PpidDatasRepo ppidDatasRepository.PpidDatasRepository
|
PpidDatasRepo ppidDatasRepository.PpidDatasRepository
|
||||||
PpidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository
|
PpidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository
|
||||||
UsersRepo usersRepository.UsersRepository
|
UsersRepo usersRepository.UsersRepository
|
||||||
|
UserLevelsRepo userLevelsRepository.UserLevelsRepository
|
||||||
MinioStorage *config.MinioStorage
|
MinioStorage *config.MinioStorage
|
||||||
Log zerolog.Logger
|
Log zerolog.Logger
|
||||||
Cfg *config.Config
|
Cfg *config.Config
|
||||||
|
|
@ -42,7 +45,7 @@ type PpidDataCategoriesService interface {
|
||||||
AllInPpidData(req request.PpidDataCategoriesQueryRequest) (ppidDataCategories []*response.PpidDataCategoriesWithPpidDataResponse, paging paginator.Pagination, err error)
|
AllInPpidData(req request.PpidDataCategoriesQueryRequest) (ppidDataCategories []*response.PpidDataCategoriesWithPpidDataResponse, paging paginator.Pagination, err error)
|
||||||
Show(id uint) (ppidDataCategories *response.PpidDataCategoriesResponse, err error)
|
Show(id uint) (ppidDataCategories *response.PpidDataCategoriesResponse, err error)
|
||||||
ShowBySlug(slug string) (ppidDataCategories *response.PpidDataCategoriesResponse, err error)
|
ShowBySlug(slug string) (ppidDataCategories *response.PpidDataCategoriesResponse, err error)
|
||||||
Save(req request.PpidDataCategoriesCreateRequest) (err error)
|
Save(req request.PpidDataCategoriesCreateRequest, authToken string) (err error)
|
||||||
SaveThumbnail(c *fiber.Ctx) (err error)
|
SaveThumbnail(c *fiber.Ctx) (err error)
|
||||||
Update(id uint, req request.PpidDataCategoriesUpdateRequest) (err error)
|
Update(id uint, req request.PpidDataCategoriesUpdateRequest) (err error)
|
||||||
UpdatePosition(req []request.PpidDataCategoriesUpdatePositionRequest) (err error)
|
UpdatePosition(req []request.PpidDataCategoriesUpdatePositionRequest) (err error)
|
||||||
|
|
@ -56,6 +59,7 @@ func NewPpidDataCategoriesService(
|
||||||
ppidDatasRepo ppidDatasRepository.PpidDatasRepository,
|
ppidDatasRepo ppidDatasRepository.PpidDatasRepository,
|
||||||
ppidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository,
|
ppidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository,
|
||||||
usersRepo usersRepository.UsersRepository,
|
usersRepo usersRepository.UsersRepository,
|
||||||
|
userLevelsRepo userLevelsRepository.UserLevelsRepository,
|
||||||
minioStorage *config.MinioStorage,
|
minioStorage *config.MinioStorage,
|
||||||
log zerolog.Logger,
|
log zerolog.Logger,
|
||||||
cfg *config.Config,
|
cfg *config.Config,
|
||||||
|
|
@ -66,6 +70,7 @@ func NewPpidDataCategoriesService(
|
||||||
PpidDatasRepo: ppidDatasRepo,
|
PpidDatasRepo: ppidDatasRepo,
|
||||||
PpidDataFilesRepo: ppidDataFilesRepo,
|
PpidDataFilesRepo: ppidDataFilesRepo,
|
||||||
UsersRepo: usersRepo,
|
UsersRepo: usersRepo,
|
||||||
|
UserLevelsRepo: userLevelsRepo,
|
||||||
MinioStorage: minioStorage,
|
MinioStorage: minioStorage,
|
||||||
Log: log,
|
Log: log,
|
||||||
Cfg: cfg,
|
Cfg: cfg,
|
||||||
|
|
@ -91,6 +96,12 @@ func (_i *ppidDataCategoriesService) All(req request.PpidDataCategoriesQueryRequ
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_i *ppidDataCategoriesService) AllInPpidData(req request.PpidDataCategoriesQueryRequest) (ppidDataCategories []*response.PpidDataCategoriesWithPpidDataResponse, paging paginator.Pagination, err error) {
|
func (_i *ppidDataCategoriesService) AllInPpidData(req request.PpidDataCategoriesQueryRequest) (ppidDataCategories []*response.PpidDataCategoriesWithPpidDataResponse, paging paginator.Pagination, err error) {
|
||||||
|
findLevel, err := _i.UserLevelsRepo.FindOneByAlias(*req.LevelGroup)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req.LevelGroupId = &findLevel.ID
|
||||||
|
|
||||||
results, paging, err := _i.Repo.GetAll(req)
|
results, paging, err := _i.Repo.GetAll(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
|
@ -142,7 +153,7 @@ func (_i *ppidDataCategoriesService) ShowBySlug(slug string) (ppidDataCategories
|
||||||
return mapper.PpidDataCategoriesResponseMapper(result, subResult), nil
|
return mapper.PpidDataCategoriesResponseMapper(result, subResult), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_i *ppidDataCategoriesService) Save(req request.PpidDataCategoriesCreateRequest) (err error) {
|
func (_i *ppidDataCategoriesService) Save(req request.PpidDataCategoriesCreateRequest, authToken string) (err error) {
|
||||||
_i.Log.Info().Interface("data", req).Msg("")
|
_i.Log.Info().Interface("data", req).Msg("")
|
||||||
|
|
||||||
lastPpidData, _ := _i.Repo.FindOneLastPosition()
|
lastPpidData, _ := _i.Repo.FindOneLastPosition()
|
||||||
|
|
@ -152,6 +163,10 @@ func (_i *ppidDataCategoriesService) Save(req request.PpidDataCategoriesCreateRe
|
||||||
newReq := req.ToEntity()
|
newReq := req.ToEntity()
|
||||||
newReq.Position = lastPosition
|
newReq.Position = lastPosition
|
||||||
|
|
||||||
|
createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
|
||||||
|
newReq.CreatedById = &createdBy.ID
|
||||||
|
newReq.LevelGroupId = &createdBy.UserLevelId
|
||||||
|
|
||||||
return _i.Repo.Create(newReq)
|
return _i.Repo.Create(newReq)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ type userLevelsRepository struct {
|
||||||
type UserLevelsRepository interface {
|
type UserLevelsRepository interface {
|
||||||
GetAll(req request.UserLevelsQueryRequest) (userLevelss []*entity.UserLevels, paging paginator.Pagination, err error)
|
GetAll(req request.UserLevelsQueryRequest) (userLevelss []*entity.UserLevels, paging paginator.Pagination, err error)
|
||||||
FindOne(id uint) (userLevels *entity.UserLevels, 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) (err error)
|
||||||
Update(id uint, userLevels *entity.UserLevels) (err error)
|
Update(id uint, userLevels *entity.UserLevels) (err error)
|
||||||
Delete(id uint) (err error)
|
Delete(id uint) (err error)
|
||||||
|
|
@ -83,6 +84,14 @@ func (_i *userLevelsRepository) FindOne(id uint) (userLevels *entity.UserLevels,
|
||||||
return userLevels, nil
|
return userLevels, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (_i *userLevelsRepository) FindOneByAlias(alias string) (userLevels *entity.UserLevels, err error) {
|
||||||
|
if err := _i.DB.DB.Where("alias_name = ?", strings.ToUpper(alias)).First(&userLevels).Error; err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return userLevels, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (_i *userLevelsRepository) Create(userLevels *entity.UserLevels) (err error) {
|
func (_i *userLevelsRepository) Create(userLevels *entity.UserLevels) (err error) {
|
||||||
return _i.DB.DB.Create(userLevels).Error
|
return _i.DB.DB.Create(userLevels).Error
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3648,6 +3648,16 @@ const docTemplate = `{
|
||||||
"name": "isPpidDataIncluded",
|
"name": "isPpidDataIncluded",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"name": "levelGroup",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"name": "levelGroupId",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"name": "parentId",
|
"name": "parentId",
|
||||||
|
|
@ -3738,6 +3748,13 @@ const docTemplate = `{
|
||||||
],
|
],
|
||||||
"summary": "Create PpidDataCategories",
|
"summary": "Create PpidDataCategories",
|
||||||
"parameters": [
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "Insert your access token",
|
||||||
|
"name": "Authorization",
|
||||||
|
"in": "header",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"description": "Required payload",
|
"description": "Required payload",
|
||||||
"name": "payload",
|
"name": "payload",
|
||||||
|
|
|
||||||
|
|
@ -3637,6 +3637,16 @@
|
||||||
"name": "isPpidDataIncluded",
|
"name": "isPpidDataIncluded",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"name": "levelGroup",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"name": "levelGroupId",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"name": "parentId",
|
"name": "parentId",
|
||||||
|
|
@ -3727,6 +3737,13 @@
|
||||||
],
|
],
|
||||||
"summary": "Create PpidDataCategories",
|
"summary": "Create PpidDataCategories",
|
||||||
"parameters": [
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "Insert your access token",
|
||||||
|
"name": "Authorization",
|
||||||
|
"in": "header",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"description": "Required payload",
|
"description": "Required payload",
|
||||||
"name": "payload",
|
"name": "payload",
|
||||||
|
|
|
||||||
|
|
@ -3169,6 +3169,12 @@ paths:
|
||||||
- in: query
|
- in: query
|
||||||
name: isPpidDataIncluded
|
name: isPpidDataIncluded
|
||||||
type: boolean
|
type: boolean
|
||||||
|
- in: query
|
||||||
|
name: levelGroup
|
||||||
|
type: string
|
||||||
|
- in: query
|
||||||
|
name: levelGroupId
|
||||||
|
type: integer
|
||||||
- in: query
|
- in: query
|
||||||
name: parentId
|
name: parentId
|
||||||
type: integer
|
type: integer
|
||||||
|
|
@ -3224,6 +3230,11 @@ paths:
|
||||||
post:
|
post:
|
||||||
description: API for create PpidDataCategories
|
description: API for create PpidDataCategories
|
||||||
parameters:
|
parameters:
|
||||||
|
- description: Insert your access token
|
||||||
|
in: header
|
||||||
|
name: Authorization
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
- description: Required payload
|
- description: Required payload
|
||||||
in: body
|
in: body
|
||||||
name: payload
|
name: payload
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue