feat: update ppid data categories for admin

This commit is contained in:
hanif salafi 2024-10-02 02:07:03 +07:00
parent 9cf885d83a
commit a17fd04a35
10 changed files with 48 additions and 8 deletions

View File

@ -10,6 +10,7 @@ type PpidDataCategories struct {
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"` CreatedById *uint `json:"created_by_id" gorm:"type:int4"`
LevelGroupId *uint `json:"level_group_id" gorm:"type:int4"` LevelGroupId *uint `json:"level_group_id" gorm:"type:int4"`
GroupBy *string `json:"group_by" 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"`

View File

@ -62,6 +62,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"),
Group: c.Query("group"),
LevelGroup: c.Query("levelGroup"), LevelGroup: c.Query("levelGroup"),
IsPpidDataIncluded: c.Query("isPpidDataIncluded"), IsPpidDataIncluded: c.Query("isPpidDataIncluded"),
} }

View File

@ -30,6 +30,8 @@ func PpidDataCategoriesResponseMapper(ppidDataCategoriesReq *entity.PpidDataCate
Slug: ppidDataCategoriesReq.Slug, Slug: ppidDataCategoriesReq.Slug,
ParentId: ppidDataCategoriesReq.ParentId, ParentId: ppidDataCategoriesReq.ParentId,
Position: ppidDataCategoriesReq.Position, Position: ppidDataCategoriesReq.Position,
LevelGroupId: ppidDataCategoriesReq.LevelGroupId,
GroupBy: ppidDataCategoriesReq.GroupBy,
ThumbnailUrl: ppidDataCategoriesReq.ThumbnailUrl, ThumbnailUrl: ppidDataCategoriesReq.ThumbnailUrl,
IsActive: ppidDataCategoriesReq.IsActive, IsActive: ppidDataCategoriesReq.IsActive,
CreatedAt: ppidDataCategoriesReq.CreatedAt, CreatedAt: ppidDataCategoriesReq.CreatedAt,
@ -75,6 +77,8 @@ func PpidDataCategoriesWithPpidDataResponseMapper(
Slug: ppidDataCategoriesReq.Slug, Slug: ppidDataCategoriesReq.Slug,
ParentId: ppidDataCategoriesReq.ParentId, ParentId: ppidDataCategoriesReq.ParentId,
Position: ppidDataCategoriesReq.Position, Position: ppidDataCategoriesReq.Position,
LevelGroupId: ppidDataCategoriesReq.LevelGroupId,
GroupBy: ppidDataCategoriesReq.GroupBy,
ThumbnailUrl: ppidDataCategoriesReq.ThumbnailUrl, ThumbnailUrl: ppidDataCategoriesReq.ThumbnailUrl,
IsActive: ppidDataCategoriesReq.IsActive, IsActive: ppidDataCategoriesReq.IsActive,
CreatedAt: ppidDataCategoriesReq.CreatedAt, CreatedAt: ppidDataCategoriesReq.CreatedAt,

View File

@ -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.Group != nil {
query = query.Where("group_by = ?", req.Group)
}
if req.LevelGroupId != nil { if req.LevelGroupId != nil {
query = query.Where("level_group_id = ?", req.LevelGroupId) query = query.Where("level_group_id = ?", req.LevelGroupId)
} }

View File

@ -17,6 +17,7 @@ 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"`
Group *string `json:"group"`
LevelGroup *string `json:"levelGroup"` LevelGroup *string `json:"levelGroup"`
LevelGroupId *uint `json:"levelGroupId"` LevelGroupId *uint `json:"levelGroupId"`
Pagination *paginator.Pagination `json:"pagination"` Pagination *paginator.Pagination `json:"pagination"`
@ -79,6 +80,7 @@ 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"`
Group string `json:"group"`
LevelGroup string `json:"levelGroup"` LevelGroup string `json:"levelGroup"`
LevelGroupId string `json:"levelGroupId"` LevelGroupId string `json:"levelGroupId"`
ParentId string `json:"parentId"` ParentId string `json:"parentId"`
@ -106,6 +108,9 @@ func (req PpidDataCategoriesQueryRequestContext) ToParamRequest() PpidDataCatego
request.IsOnlyTop = &isOnlyTop request.IsOnlyTop = &isOnlyTop
} }
} }
if group := req.Group; group != "" {
request.Group = &group
}
if levelGroup := req.LevelGroup; levelGroup != "" { if levelGroup := req.LevelGroup; levelGroup != "" {
request.LevelGroup = &levelGroup request.LevelGroup = &levelGroup
} }

View File

@ -12,6 +12,8 @@ type PpidDataCategoriesResponse struct {
Slug string `json:"slug"` Slug string `json:"slug"`
ParentId *uint `json:"parentId"` ParentId *uint `json:"parentId"`
Position *int `json:"position"` Position *int `json:"position"`
LevelGroupId *uint `json:"levelGroupId"`
GroupBy *string `json:"groupBy"`
ThumbnailUrl *string `json:"thumbnailUrl"` ThumbnailUrl *string `json:"thumbnailUrl"`
IsActive *bool `json:"isActive"` IsActive *bool `json:"isActive"`
CreatedAt time.Time `json:"createdAt"` CreatedAt time.Time `json:"createdAt"`
@ -27,6 +29,8 @@ type PpidDataCategoriesWithPpidDataResponse struct {
Slug string `json:"slug"` Slug string `json:"slug"`
ParentId *uint `json:"parentId"` ParentId *uint `json:"parentId"`
Position *int `json:"position"` Position *int `json:"position"`
LevelGroupId *uint `json:"levelGroupId"`
GroupBy *string `json:"groupBy"`
ThumbnailUrl *string `json:"thumbnailUrl"` ThumbnailUrl *string `json:"thumbnailUrl"`
IsActive *bool `json:"isActive"` IsActive *bool `json:"isActive"`
CreatedAt time.Time `json:"createdAt"` CreatedAt time.Time `json:"createdAt"`

View File

@ -105,13 +105,12 @@ func (_i *ppidDataCategoriesService) AllInPpidData(req request.PpidDataCategorie
if findLevel != nil { if findLevel != nil {
req.LevelGroupId = &findLevel.ID req.LevelGroupId = &findLevel.ID
} }
} } else {
createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken) createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
if createdBy != nil { if createdBy != nil {
req.LevelGroupId = &createdBy.UserLevelId req.LevelGroupId = &createdBy.UserLevelId
} }
}
results, paging, err := _i.Repo.GetAll(req) results, paging, err := _i.Repo.GetAll(req)
if err != nil { if err != nil {
return return
@ -174,9 +173,19 @@ func (_i *ppidDataCategoriesService) Save(req request.PpidDataCategoriesCreateRe
newReq.Position = lastPosition newReq.Position = lastPosition
createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken) createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
if createdBy != nil {
newReq.CreatedById = &createdBy.ID newReq.CreatedById = &createdBy.ID
newReq.LevelGroupId = &createdBy.UserLevelId newReq.LevelGroupId = &createdBy.UserLevelId
userLevels, err := _i.UserLevelsRepo.FindOne(uint(createdBy.UserLevelId))
if err != nil {
return err
}
if userLevels != nil {
newReq.GroupBy = userLevels.Group
}
}
return _i.Repo.Create(newReq) return _i.Repo.Create(newReq)
} }

View File

@ -3644,6 +3644,11 @@ const docTemplate = `{
"name": "description", "name": "description",
"in": "query" "in": "query"
}, },
{
"type": "string",
"name": "group",
"in": "query"
},
{ {
"type": "boolean", "type": "boolean",
"name": "isOnlyTop", "name": "isOnlyTop",

View File

@ -3633,6 +3633,11 @@
"name": "description", "name": "description",
"in": "query" "in": "query"
}, },
{
"type": "string",
"name": "group",
"in": "query"
},
{ {
"type": "boolean", "type": "boolean",
"name": "isOnlyTop", "name": "isOnlyTop",

View File

@ -3167,6 +3167,9 @@ paths:
- in: query - in: query
name: description name: description
type: string type: string
- in: query
name: group
type: string
- in: query - in: query
name: isOnlyTop name: isOnlyTop
type: boolean type: boolean