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