feat: update for position in ppid data, files, category

This commit is contained in:
hanif salafi 2024-05-28 10:07:38 +07:00
parent ae3a6653ac
commit 89761a5c89
26 changed files with 909 additions and 12 deletions

View File

@ -8,6 +8,7 @@ type ArticleCategories struct {
Description string `json:"description" gorm:"type:varchar"` Description string `json:"description" gorm:"type:varchar"`
ThumbnailPath *string `json:"thumbnail_path" gorm:"type:varchar"` ThumbnailPath *string `json:"thumbnail_path" gorm:"type:varchar"`
ParentId *int `json:"parent_id" gorm:"type:int4"` ParentId *int `json:"parent_id" gorm:"type:int4"`
Position *int `json:"position" gorm:"type:int4"`
CreatedById *uint `json:"created_by_id" gorm:"type:int4"` CreatedById *uint `json:"created_by_id" gorm:"type:int4"`
StatusId int `json:"status_id" gorm:"type:int4;default:1"` StatusId int `json:"status_id" gorm:"type:int4;default:1"`
IsPublish *bool `json:"is_publish" gorm:"type:bool;default:false"` IsPublish *bool `json:"is_publish" gorm:"type:bool;default:false"`

View File

@ -8,6 +8,7 @@ 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"`
Position *int `json:"position" gorm:"type:int4"`
ThumbnailPath *string `json:"thumbnail_path" gorm:"type:varchar"` ThumbnailPath *string `json:"thumbnail_path" gorm:"type:varchar"`
IsActive *bool `json:"is_active" gorm:"type:bool;default:true"` IsActive *bool `json:"is_active" gorm:"type:bool;default:true"`
CreatedAt time.Time `json:"created_at" gorm:"default:now()"` CreatedAt time.Time `json:"created_at" gorm:"default:now()"`

View File

@ -9,7 +9,9 @@ type PpidDataFiles struct {
FileType *string `json:"file_type" gorm:"type:varchar"` FileType *string `json:"file_type" gorm:"type:varchar"`
FileName *string `json:"file_name" gorm:"type:varchar"` FileName *string `json:"file_name" gorm:"type:varchar"`
FilePath *string `json:"file_path" gorm:"type:varchar"` FilePath *string `json:"file_path" gorm:"type:varchar"`
FileUrl *string `json:"file_url" gorm:"type:varchar"`
Size *string `json:"size" gorm:"type:varchar"` Size *string `json:"size" gorm:"type:varchar"`
Position *int `json:"position" gorm:"type:int4"`
DownloadCount *int `json:"download_count" gorm:"type:int4;default:0"` DownloadCount *int `json:"download_count" gorm:"type:int4;default:0"`
CreatedById *int `json:"created_by_id" gorm:"type:int4"` CreatedById *int `json:"created_by_id" gorm:"type:int4"`
StatusId *int `json:"status_id" gorm:"type:int4"` StatusId *int `json:"status_id" gorm:"type:int4"`

View File

@ -11,6 +11,7 @@ type PpidDatas struct {
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"`
Group *string `json:"group" gorm:"type:varchar"` Group *string `json:"group" gorm:"type:varchar"`
Position *int `json:"position" gorm:"type:int4"`
NeedApprovalFromUserRole *string `json:"need_approval_from_user_role" gorm:"type:varchar"` NeedApprovalFromUserRole *string `json:"need_approval_from_user_role" gorm:"type:varchar"`
NeedApprovalFromUserLevel *string `json:"need_approval_from_user_level" gorm:"type:varchar"` NeedApprovalFromUserLevel *string `json:"need_approval_from_user_level" gorm:"type:varchar"`
BackApprovalToUserRole *string `json:"back_approval_to_user_role" gorm:"type:varchar"` BackApprovalToUserRole *string `json:"back_approval_to_user_role" gorm:"type:varchar"`

View File

@ -1,13 +1,16 @@
package controller package controller
import "go-humas-be/app/module/ppid_data_categories/service" import (
"github.com/rs/zerolog"
"go-humas-be/app/module/ppid_data_categories/service"
)
type Controller struct { type Controller struct {
PpidDataCategories PpidDataCategoriesController PpidDataCategories PpidDataCategoriesController
} }
func NewController(PpidDataCategoriesService service.PpidDataCategoriesService) *Controller { func NewController(PpidDataCategoriesService service.PpidDataCategoriesService, log zerolog.Logger) *Controller {
return &Controller{ return &Controller{
PpidDataCategories: NewPpidDataCategoriesController(PpidDataCategoriesService), PpidDataCategories: NewPpidDataCategoriesController(PpidDataCategoriesService, log),
} }
} }

View File

@ -26,13 +26,15 @@ type PpidDataCategoriesController interface {
Save(c *fiber.Ctx) error Save(c *fiber.Ctx) error
SaveThumbnail(c *fiber.Ctx) error SaveThumbnail(c *fiber.Ctx) error
Update(c *fiber.Ctx) error Update(c *fiber.Ctx) error
UpdatePosition(c *fiber.Ctx) error
Delete(c *fiber.Ctx) error Delete(c *fiber.Ctx) error
Viewer(c *fiber.Ctx) error Viewer(c *fiber.Ctx) error
} }
func NewPpidDataCategoriesController(ppidDataCategoriesService service.PpidDataCategoriesService) PpidDataCategoriesController { func NewPpidDataCategoriesController(ppidDataCategoriesService service.PpidDataCategoriesService, log zerolog.Logger) PpidDataCategoriesController {
return &ppidDataCategoriesController{ return &ppidDataCategoriesController{
ppidDataCategoriesService: ppidDataCategoriesService, ppidDataCategoriesService: ppidDataCategoriesService,
Log: log,
} }
} }
@ -240,6 +242,34 @@ func (_i *ppidDataCategoriesController) Update(c *fiber.Ctx) error {
}) })
} }
// UpdatePosition PpidDataCategories
// @Summary UpdatePosition PpidDataCategories
// @Description API for Update Position PpidDataCategories
// @Tags PPID Categories
// @Security Bearer
// @Param payload body request.PpidDataCategoriesUpdatePositionPayload true "Required payload"
// @Success 200 {object} response.Response
// @Failure 400 {object} response.BadRequestError
// @Failure 401 {object} response.UnauthorizedError
// @Failure 500 {object} response.InternalServerError
// @Router /ppid-data-categories/position [post]
func (_i *ppidDataCategoriesController) UpdatePosition(c *fiber.Ctx) error {
req := new(request.PpidDataCategoriesUpdatePositionPayload)
if err := utilVal.ParseAndValidate(c, req); err != nil {
return err
}
err := _i.ppidDataCategoriesService.UpdatePosition(req.Positions)
if err != nil {
return err
}
return utilRes.Resp(c, utilRes.Response{
Success: true,
Messages: utilRes.Messages{"PpidDataCategories successfully updated"},
})
}
// Delete PpidDataCategories // Delete PpidDataCategories
// @Summary Delete PpidDataCategories // @Summary Delete PpidDataCategories
// @Description API for delete PpidDataCategories // @Description API for delete PpidDataCategories

View File

@ -30,6 +30,7 @@ func PpidDataCategoriesResponseMapper(ppidDataCategoriesReq *entity.PpidDataCate
Description: ppidDataCategoriesReq.Description, Description: ppidDataCategoriesReq.Description,
Slug: ppidDataCategoriesReq.Slug, Slug: ppidDataCategoriesReq.Slug,
ParentId: ppidDataCategoriesReq.ParentId, ParentId: ppidDataCategoriesReq.ParentId,
Position: ppidDataCategoriesReq.Position,
ThumbnailUrl: "/ppid-data-categories/thumbnail/viewer/" + strconv.Itoa(int(ppidDataCategoriesReq.ID)), ThumbnailUrl: "/ppid-data-categories/thumbnail/viewer/" + strconv.Itoa(int(ppidDataCategoriesReq.ID)),
IsActive: ppidDataCategoriesReq.IsActive, IsActive: ppidDataCategoriesReq.IsActive,
CreatedAt: ppidDataCategoriesReq.CreatedAt, CreatedAt: ppidDataCategoriesReq.CreatedAt,
@ -74,6 +75,7 @@ func PpidDataCategoriesWithPpidDataResponseMapper(
Description: ppidDataCategoriesReq.Description, Description: ppidDataCategoriesReq.Description,
Slug: ppidDataCategoriesReq.Slug, Slug: ppidDataCategoriesReq.Slug,
ParentId: ppidDataCategoriesReq.ParentId, ParentId: ppidDataCategoriesReq.ParentId,
Position: ppidDataCategoriesReq.Position,
ThumbnailUrl: "/ppid-data-categories/thumbnail/viewer/" + strconv.Itoa(int(ppidDataCategoriesReq.ID)), ThumbnailUrl: "/ppid-data-categories/thumbnail/viewer/" + strconv.Itoa(int(ppidDataCategoriesReq.ID)),
IsActive: ppidDataCategoriesReq.IsActive, IsActive: ppidDataCategoriesReq.IsActive,
CreatedAt: ppidDataCategoriesReq.CreatedAt, CreatedAt: ppidDataCategoriesReq.CreatedAt,

View File

@ -49,6 +49,7 @@ func (_i *PpidDataCategoriesRouter) RegisterPpidDataCategoriesRoutes() {
router.Get("/slug/:slug", ppidDataCategoriesController.ShowBySlug) router.Get("/slug/:slug", ppidDataCategoriesController.ShowBySlug)
router.Post("/", ppidDataCategoriesController.Save) router.Post("/", ppidDataCategoriesController.Save)
router.Put("/:id", ppidDataCategoriesController.Update) router.Put("/:id", ppidDataCategoriesController.Update)
router.Post("/position", ppidDataCategoriesController.UpdatePosition)
router.Post("/thumbnail/:id", ppidDataCategoriesController.SaveThumbnail) router.Post("/thumbnail/:id", ppidDataCategoriesController.SaveThumbnail)
router.Get("/thumbnail/viewer/:id", ppidDataCategoriesController.Viewer) router.Get("/thumbnail/viewer/:id", ppidDataCategoriesController.Viewer)
router.Delete("/:id", ppidDataCategoriesController.Delete) router.Delete("/:id", ppidDataCategoriesController.Delete)

View File

@ -22,8 +22,10 @@ type PpidDataCategoriesRepository interface {
GetAllNonPage(req request.PpidDataCategoriesQueryRequest) (ppidDataCategoriess []*entity.PpidDataCategories, paging paginator.Pagination, err error) GetAllNonPage(req request.PpidDataCategoriesQueryRequest) (ppidDataCategoriess []*entity.PpidDataCategories, paging paginator.Pagination, err error)
FindOne(id uint) (ppidDataCategories *entity.PpidDataCategories, err error) FindOne(id uint) (ppidDataCategories *entity.PpidDataCategories, err error)
FindOneBySlug(slug string) (ppidDataCategories *entity.PpidDataCategories, err error) FindOneBySlug(slug string) (ppidDataCategories *entity.PpidDataCategories, err error)
FindOneLastPosition() (ppidDataCategories *entity.PpidDataCategories, err error)
Create(ppidDataCategories *entity.PpidDataCategories) (err error) Create(ppidDataCategories *entity.PpidDataCategories) (err error)
Update(id uint, ppidDataCategories *entity.PpidDataCategories) (err error) Update(id uint, ppidDataCategories *entity.PpidDataCategories) (err error)
UpdateAll(ppidDataCategories []*entity.PpidDataCategories) (err error)
Delete(id uint) (err error) Delete(id uint) (err error)
} }
@ -141,6 +143,15 @@ func (_i *ppidDataCategoriesRepository) FindOneBySlug(slug string) (ppidDataCate
return ppidDataCategories, nil return ppidDataCategories, nil
} }
func (_i *ppidDataCategoriesRepository) FindOneLastPosition() (ppidDataCategories *entity.PpidDataCategories, err error) {
if err := _i.DB.DB.Where("position IS NOT NULL").Last(&ppidDataCategories).
Order(fmt.Sprintf("%s %s", "position", "DESC")).Error; err != nil {
return nil, err
}
return ppidDataCategories, nil
}
func (_i *ppidDataCategoriesRepository) Create(ppidDataCategories *entity.PpidDataCategories) (err error) { func (_i *ppidDataCategoriesRepository) Create(ppidDataCategories *entity.PpidDataCategories) (err error) {
return _i.DB.DB.Create(ppidDataCategories).Error return _i.DB.DB.Create(ppidDataCategories).Error
} }
@ -151,6 +162,18 @@ func (_i *ppidDataCategoriesRepository) Update(id uint, ppidDataCategories *enti
Updates(ppidDataCategories).Error Updates(ppidDataCategories).Error
} }
func (_i *ppidDataCategoriesRepository) UpdateAll(ppidDataCategories []*entity.PpidDataCategories) (err error) {
for _, req := range ppidDataCategories {
err := _i.DB.DB.Model(&entity.PpidDataCategories{}).
Where(&entity.PpidDataCategories{ID: req.ID}).
Updates(req).Error
if err != nil {
return err
}
}
return nil
}
func (_i *ppidDataCategoriesRepository) Delete(id uint) error { func (_i *ppidDataCategoriesRepository) Delete(id uint) error {
return _i.DB.DB.Delete(&entity.PpidDataCategories{}, id).Error return _i.DB.DB.Delete(&entity.PpidDataCategories{}, id).Error
} }

View File

@ -55,6 +55,23 @@ func (req PpidDataCategoriesUpdateRequest) ToEntity() *entity.PpidDataCategories
} }
} }
type PpidDataCategoriesUpdatePositionPayload struct {
Positions []PpidDataCategoriesUpdatePositionRequest `json:"positions"`
}
type PpidDataCategoriesUpdatePositionRequest struct {
ID uint `json:"id" validate:"required"`
Position int `json:"position" validate:"required"`
}
func (req PpidDataCategoriesUpdatePositionRequest) ToEntity() *entity.PpidDataCategories {
return &entity.PpidDataCategories{
ID: req.ID,
Position: &req.Position,
UpdatedAt: time.Now(),
}
}
type PpidDataCategoriesQueryRequestContext struct { type PpidDataCategoriesQueryRequestContext struct {
Title string `json:"title"` Title string `json:"title"`
Description string `json:"description"` Description string `json:"description"`

View File

@ -11,6 +11,7 @@ type PpidDataCategoriesResponse struct {
Description string `json:"description"` Description string `json:"description"`
Slug string `json:"slug"` Slug string `json:"slug"`
ParentId *uint `json:"parentId"` ParentId *uint `json:"parentId"`
Position *int `json:"position"`
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"`
@ -25,6 +26,7 @@ type PpidDataCategoriesWithPpidDataResponse struct {
Description string `json:"description"` Description string `json:"description"`
Slug string `json:"slug"` Slug string `json:"slug"`
ParentId *uint `json:"parentId"` ParentId *uint `json:"parentId"`
Position *int `json:"position"`
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

@ -5,6 +5,7 @@ import (
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"go-humas-be/app/database/entity"
"go-humas-be/app/module/ppid_data_categories/mapper" "go-humas-be/app/module/ppid_data_categories/mapper"
"go-humas-be/app/module/ppid_data_categories/repository" "go-humas-be/app/module/ppid_data_categories/repository"
"go-humas-be/app/module/ppid_data_categories/request" "go-humas-be/app/module/ppid_data_categories/request"
@ -43,6 +44,7 @@ type PpidDataCategoriesService interface {
Save(req request.PpidDataCategoriesCreateRequest) (err error) Save(req request.PpidDataCategoriesCreateRequest) (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)
Delete(id uint) error Delete(id uint) error
Viewer(c *fiber.Ctx) error Viewer(c *fiber.Ctx) error
} }
@ -140,7 +142,14 @@ func (_i *ppidDataCategoriesService) ShowBySlug(slug string) (ppidDataCategories
func (_i *ppidDataCategoriesService) Save(req request.PpidDataCategoriesCreateRequest) (err error) { func (_i *ppidDataCategoriesService) Save(req request.PpidDataCategoriesCreateRequest) (err error) {
_i.Log.Info().Interface("data", req).Msg("") _i.Log.Info().Interface("data", req).Msg("")
return _i.Repo.Create(req.ToEntity()) lastPpidData, _ := _i.Repo.FindOneLastPosition()
lastPosition := lastPpidData.Position
*lastPosition += 1
newReq := req.ToEntity()
newReq.Position = lastPosition
return _i.Repo.Create(newReq)
} }
func (_i *ppidDataCategoriesService) SaveThumbnail(c *fiber.Ctx) (err error) { func (_i *ppidDataCategoriesService) SaveThumbnail(c *fiber.Ctx) (err error) {
@ -223,6 +232,21 @@ func (_i *ppidDataCategoriesService) Update(id uint, req request.PpidDataCategor
return _i.Repo.Update(id, req.ToEntity()) return _i.Repo.Update(id, req.ToEntity())
} }
func (_i *ppidDataCategoriesService) UpdatePosition(req []request.PpidDataCategoriesUpdatePositionRequest) (err error) {
_i.Log.Info().Interface("data", req).Msg("")
var entityReq []*entity.PpidDataCategories
for _, reqItem := range req {
entityReq = append(entityReq, reqItem.ToEntity())
}
_i.Log.Info().Str("timestamp", time.Now().
Format(time.RFC3339)).Str("Service:UpdatePosition", "ppidDataCategoriesController").
Interface("entityReq", entityReq).Msg("")
return _i.Repo.UpdateAll(entityReq)
}
func (_i *ppidDataCategoriesService) Delete(id uint) error { func (_i *ppidDataCategoriesService) Delete(id uint) error {
result, err := _i.Repo.FindOne(id) result, err := _i.Repo.FindOne(id)
if err != nil { if err != nil {

View File

@ -1,13 +1,16 @@
package controller package controller
import "go-humas-be/app/module/ppid_data_files/service" import (
"github.com/rs/zerolog"
"go-humas-be/app/module/ppid_data_files/service"
)
type Controller struct { type Controller struct {
PpidDataFiles PpidDataFilesController PpidDataFiles PpidDataFilesController
} }
func NewController(PpidDataFilesService service.PpidDataFilesService) *Controller { func NewController(PpidDataFilesService service.PpidDataFilesService, log zerolog.Logger) *Controller {
return &Controller{ return &Controller{
PpidDataFiles: NewPpidDataFilesController(PpidDataFilesService), PpidDataFiles: NewPpidDataFilesController(PpidDataFilesService, log),
} }
} }

View File

@ -2,10 +2,12 @@ package controller
import ( import (
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/rs/zerolog"
"go-humas-be/app/module/ppid_data_files/request" "go-humas-be/app/module/ppid_data_files/request"
"go-humas-be/app/module/ppid_data_files/service" "go-humas-be/app/module/ppid_data_files/service"
"go-humas-be/utils/paginator" "go-humas-be/utils/paginator"
"strconv" "strconv"
"time"
utilRes "go-humas-be/utils/response" utilRes "go-humas-be/utils/response"
utilVal "go-humas-be/utils/validator" utilVal "go-humas-be/utils/validator"
@ -13,6 +15,7 @@ import (
type ppidDataFilesController struct { type ppidDataFilesController struct {
ppidDataFilesService service.PpidDataFilesService ppidDataFilesService service.PpidDataFilesService
Log zerolog.Logger
} }
type PpidDataFilesController interface { type PpidDataFilesController interface {
@ -20,13 +23,15 @@ type PpidDataFilesController interface {
Show(c *fiber.Ctx) error Show(c *fiber.Ctx) error
Save(c *fiber.Ctx) error Save(c *fiber.Ctx) error
Update(c *fiber.Ctx) error Update(c *fiber.Ctx) error
UpdatePosition(c *fiber.Ctx) error
Delete(c *fiber.Ctx) error Delete(c *fiber.Ctx) error
Viewer(c *fiber.Ctx) error Viewer(c *fiber.Ctx) error
} }
func NewPpidDataFilesController(ppidDataFilesService service.PpidDataFilesService) PpidDataFilesController { func NewPpidDataFilesController(ppidDataFilesService service.PpidDataFilesService, log zerolog.Logger) PpidDataFilesController {
return &ppidDataFilesController{ return &ppidDataFilesController{
ppidDataFilesService: ppidDataFilesService, ppidDataFilesService: ppidDataFilesService,
Log: log,
} }
} }
@ -161,6 +166,48 @@ func (_i *ppidDataFilesController) Update(c *fiber.Ctx) error {
}) })
} }
// UpdatePosition PpidDataFiles
// @Summary UpdatePosition PpidDataFiles
// @Description API for Update Position PpidDataFiles
// @Tags PPID Files
// @Security Bearer
// @Param payload body request.PpidDataFilesUpdatePositionPayload true "Required payload"
// @Success 200 {object} response.Response
// @Failure 400 {object} response.BadRequestError
// @Failure 401 {object} response.UnauthorizedError
// @Failure 500 {object} response.InternalServerError
// @Router /ppid-data-files/position [post]
func (_i *ppidDataFilesController) UpdatePosition(c *fiber.Ctx) error {
_i.Log.Info().Str("timestamp", time.Now().
Format(time.RFC3339)).Str("Service:All", "ppidDataFilesController").
Interface("req", "TEST").Msg("")
//req := new(request.PpidDataFilesUpdatePositionPayload)
//
//_i.Log.Info().Str("timestamp", time.Now().
// Format(time.RFC3339)).Str("Service:All", "ppidDataCategoriesController").
// Interface("req", "TEST").Msg("")
//
//if err := utilVal.ParseAndValidate(c, req); err != nil {
// return err
//}
//
//_i.Log.Info().Str("timestamp", time.Now().
// Format(time.RFC3339)).Str("Service:All", "ppidDataCategoriesController").
// Interface("req", req).Msg("")
//
//err := _i.ppidDataFilesService.UpdatePosition(req.Positions)
//if err != nil {
// return err
//}
return utilRes.Resp(c, utilRes.Response{
Success: true,
Messages: utilRes.Messages{"PpidDataFiles successfully updated"},
})
}
// Delete PpidDataFiles // Delete PpidDataFiles
// @Summary delete PpidDataFiles // @Summary delete PpidDataFiles
// @Description API for delete PpidDataFiles // @Description API for delete PpidDataFiles

View File

@ -48,6 +48,7 @@ func (_i *PpidDataFilesRouter) RegisterPpidDataFilesRoutes() {
router.Get("/:id", ppidDataFilesController.Show) router.Get("/:id", ppidDataFilesController.Show)
router.Post("/:ppidDataId", ppidDataFilesController.Save) router.Post("/:ppidDataId", ppidDataFilesController.Save)
router.Put("/:id", ppidDataFilesController.Update) router.Put("/:id", ppidDataFilesController.Update)
router.Post("/position", ppidDataFilesController.UpdatePosition)
router.Delete("/:id", ppidDataFilesController.Delete) router.Delete("/:id", ppidDataFilesController.Delete)
router.Get("/viewer/:filename", ppidDataFilesController.Viewer) router.Get("/viewer/:filename", ppidDataFilesController.Viewer)
}) })

View File

@ -1,6 +1,7 @@
package repository package repository
import ( import (
"fmt"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"go-humas-be/app/database" "go-humas-be/app/database"
"go-humas-be/app/database/entity" "go-humas-be/app/database/entity"
@ -18,9 +19,11 @@ type PpidDataFilesRepository interface {
GetAll(req request.PpidDataFilesQueryRequest) (ppidDataFiless []*entity.PpidDataFiles, paging paginator.Pagination, err error) GetAll(req request.PpidDataFilesQueryRequest) (ppidDataFiless []*entity.PpidDataFiles, paging paginator.Pagination, err error)
FindOne(id uint) (ppidDataFiles *entity.PpidDataFiles, err error) FindOne(id uint) (ppidDataFiles *entity.PpidDataFiles, err error)
FindByFilename(filename string) (ppidDataFiles *entity.PpidDataFiles, err error) FindByFilename(filename string) (ppidDataFiles *entity.PpidDataFiles, err error)
FindByPpidData(ppidDataId uint) (ppidDataFiless []*entity.PpidDataFiles, err error) FindByPpidData(ppidDataId uint) (ppidDataFiles []*entity.PpidDataFiles, err error)
FindOneLastPosition() (ppidDataFiles *entity.PpidDataFiles, err error)
Create(ppidDataFiles *entity.PpidDataFiles) (err error) Create(ppidDataFiles *entity.PpidDataFiles) (err error)
Update(id uint, ppidDataFiles *entity.PpidDataFiles) (err error) Update(id uint, ppidDataFiles *entity.PpidDataFiles) (err error)
UpdateAll(ppidDataFiles []*entity.PpidDataFiles) (err error)
Delete(id uint) (err error) Delete(id uint) (err error)
} }
@ -76,6 +79,15 @@ func (_i *ppidDataFilesRepository) FindByPpidData(ppidDataId uint) (ppidDataFile
return ppidDataFiles, nil return ppidDataFiles, nil
} }
func (_i *ppidDataFilesRepository) FindOneLastPosition() (ppidDataFiles *entity.PpidDataFiles, err error) {
if err := _i.DB.DB.Where("position IS NOT NULL").Last(&ppidDataFiles).
Order(fmt.Sprintf("%s %s", "position", "DESC")).Error; err != nil {
return nil, err
}
return ppidDataFiles, nil
}
func (_i *ppidDataFilesRepository) Create(ppidDataFiles *entity.PpidDataFiles) (err error) { func (_i *ppidDataFilesRepository) Create(ppidDataFiles *entity.PpidDataFiles) (err error) {
return _i.DB.DB.Create(ppidDataFiles).Error return _i.DB.DB.Create(ppidDataFiles).Error
} }
@ -86,6 +98,18 @@ func (_i *ppidDataFilesRepository) Update(id uint, ppidDataFiles *entity.PpidDat
Updates(ppidDataFiles).Error Updates(ppidDataFiles).Error
} }
func (_i *ppidDataFilesRepository) UpdateAll(ppidDataFiles []*entity.PpidDataFiles) (err error) {
for _, req := range ppidDataFiles {
err := _i.DB.DB.Model(&entity.PpidDataFiles{}).
Where(&entity.PpidDataFiles{ID: req.ID}).
Updates(req).Error
if err != nil {
return err
}
}
return nil
}
func (_i *ppidDataFilesRepository) Delete(id uint) error { func (_i *ppidDataFilesRepository) Delete(id uint) error {
return _i.DB.DB.Delete(&entity.PpidDataFiles{}, id).Error return _i.DB.DB.Delete(&entity.PpidDataFiles{}, id).Error
} }

View File

@ -73,6 +73,23 @@ func (req PpidDataFilesUpdateRequest) ToEntity() *entity.PpidDataFiles {
} }
} }
type PpidDataFilesUpdatePositionPayload struct {
Positions []PpidDataFilesUpdatePositionRequest `json:"positions"`
}
type PpidDataFilesUpdatePositionRequest struct {
ID uint `json:"id"`
Position int `json:"position"`
}
func (req PpidDataFilesUpdatePositionRequest) ToEntity() *entity.PpidDataFiles {
return &entity.PpidDataFiles{
ID: req.ID,
Position: &req.Position,
UpdatedAt: time.Now(),
}
}
type PpidDataFilesQueryRequestContext struct { type PpidDataFilesQueryRequestContext struct {
Title string `json:"title"` Title string `json:"title"`
PpidDataId string `json:"ppidDataId"` PpidDataId string `json:"ppidDataId"`

View File

@ -5,6 +5,7 @@ import (
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"go-humas-be/app/database/entity"
"go-humas-be/app/module/ppid_data_files/mapper" "go-humas-be/app/module/ppid_data_files/mapper"
"go-humas-be/app/module/ppid_data_files/repository" "go-humas-be/app/module/ppid_data_files/repository"
"go-humas-be/app/module/ppid_data_files/request" "go-humas-be/app/module/ppid_data_files/request"
@ -34,6 +35,7 @@ type PpidDataFilesService interface {
Show(id uint) (ppidDataFiles *response.PpidDataFilesResponse, err error) Show(id uint) (ppidDataFiles *response.PpidDataFilesResponse, err error)
Save(c *fiber.Ctx) error Save(c *fiber.Ctx) error
Update(id uint, req request.PpidDataFilesUpdateRequest) (err error) Update(id uint, req request.PpidDataFilesUpdateRequest) (err error)
UpdatePosition(req []request.PpidDataFilesUpdatePositionRequest) (err error)
Delete(id uint) error Delete(id uint) error
Viewer(c *fiber.Ctx, filename string) error Viewer(c *fiber.Ctx, filename string) error
} }
@ -158,6 +160,17 @@ func (_i *ppidDataFilesService) Update(id uint, req request.PpidDataFilesUpdateR
return _i.Repo.Update(id, req.ToEntity()) return _i.Repo.Update(id, req.ToEntity())
} }
func (_i *ppidDataFilesService) UpdatePosition(req []request.PpidDataFilesUpdatePositionRequest) (err error) {
_i.Log.Info().Interface("data", req).Msg("")
var entityReq []*entity.PpidDataFiles
for _, reqItem := range req {
entityReq = append(entityReq, reqItem.ToEntity())
}
return _i.Repo.UpdateAll(entityReq)
}
func (_i *ppidDataFilesService) Delete(id uint) error { func (_i *ppidDataFilesService) Delete(id uint) error {
return _i.Repo.Delete(id) return _i.Repo.Delete(id)
} }

View File

@ -23,6 +23,7 @@ type PpidDatasController interface {
Show(c *fiber.Ctx) error Show(c *fiber.Ctx) error
Save(c *fiber.Ctx) error Save(c *fiber.Ctx) error
Update(c *fiber.Ctx) error Update(c *fiber.Ctx) error
UpdatePosition(c *fiber.Ctx) error
UpdateApprovalStatus(c *fiber.Ctx) error UpdateApprovalStatus(c *fiber.Ctx) error
Delete(c *fiber.Ctx) error Delete(c *fiber.Ctx) error
} }
@ -202,6 +203,34 @@ func (_i *ppidDatasController) UpdateApprovalStatus(c *fiber.Ctx) error {
}) })
} }
// UpdatePosition PpidDatas
// @Summary UpdatePosition PpidDatas
// @Description API for Update Position PpidDatas
// @Tags PPID Data
// @Security Bearer
// @Param payload body request.PpidDatasUpdatePositionPayload true "Required payload"
// @Success 200 {object} response.Response
// @Failure 400 {object} response.BadRequestError
// @Failure 401 {object} response.UnauthorizedError
// @Failure 500 {object} response.InternalServerError
// @Router /ppid-datas/position [post]
func (_i *ppidDatasController) UpdatePosition(c *fiber.Ctx) error {
req := new(request.PpidDatasUpdatePositionPayload)
if err := utilVal.ParseAndValidate(c, req); err != nil {
return err
}
err := _i.ppidDatasService.UpdatePosition(req.Positions)
if err != nil {
return err
}
return utilRes.Resp(c, utilRes.Response{
Success: true,
Messages: utilRes.Messages{"PpidDataCategories successfully updated"},
})
}
// Delete PpidDatas // Delete PpidDatas
// @Summary delete PpidDatas // @Summary delete PpidDatas
// @Description API for delete PpidDatas // @Description API for delete PpidDatas

View File

@ -48,6 +48,7 @@ func (_i *PpidDatasRouter) RegisterPpidDatasRoutes() {
router.Get("/:id", ppidDatasController.Show) router.Get("/:id", ppidDatasController.Show)
router.Post("/", ppidDatasController.Save) router.Post("/", ppidDatasController.Save)
router.Put("/:id", ppidDatasController.Update) router.Put("/:id", ppidDatasController.Update)
router.Post("/position", ppidDatasController.UpdatePosition)
router.Post("/approval", ppidDatasController.UpdateApprovalStatus) router.Post("/approval", ppidDatasController.UpdateApprovalStatus)
router.Delete("/:id", ppidDatasController.Delete) router.Delete("/:id", ppidDatasController.Delete)
}) })

View File

@ -22,8 +22,10 @@ type PpidDatasRepository interface {
GetAll(req request.PpidDatasQueryRequest) (ppidDatass []*entity.PpidDatas, paging paginator.Pagination, err error) GetAll(req request.PpidDatasQueryRequest) (ppidDatass []*entity.PpidDatas, paging paginator.Pagination, err error)
FindOne(id uint) (ppidDatas *entity.PpidDatas, err error) FindOne(id uint) (ppidDatas *entity.PpidDatas, err error)
FindOneUsingSlug(slug string) (ppidDatas *entity.PpidDatas, err error) FindOneUsingSlug(slug string) (ppidDatas *entity.PpidDatas, err error)
FindOneLastPosition() (ppidDatas *entity.PpidDatas, err error)
Create(ppidDatas *entity.PpidDatas) (ppidDataReturn *entity.PpidDatas, err error) Create(ppidDatas *entity.PpidDatas) (ppidDataReturn *entity.PpidDatas, err error)
Update(id uint, ppidDatas *entity.PpidDatas) (err error) Update(id uint, ppidDatas *entity.PpidDatas) (err error)
UpdateAll(ppidDatas []*entity.PpidDatas) (err error)
Delete(id uint) (err error) Delete(id uint) (err error)
} }
@ -115,6 +117,15 @@ func (_i *ppidDatasRepository) FindOneUsingSlug(slug string) (ppidDatas *entity.
return ppidDatas, nil return ppidDatas, nil
} }
func (_i *ppidDatasRepository) FindOneLastPosition() (ppidDatas *entity.PpidDatas, err error) {
if err := _i.DB.DB.Where("position IS NOT NULL").Last(&ppidDatas).
Order(fmt.Sprintf("%s %s", "position", "DESC")).Error; err != nil {
return nil, err
}
return ppidDatas, nil
}
func (_i *ppidDatasRepository) Create(ppidDatas *entity.PpidDatas) (ppidDataReturn *entity.PpidDatas, err error) { func (_i *ppidDatasRepository) Create(ppidDatas *entity.PpidDatas) (ppidDataReturn *entity.PpidDatas, err error) {
result := _i.DB.DB.Create(ppidDatas) result := _i.DB.DB.Create(ppidDatas)
@ -131,6 +142,18 @@ func (_i *ppidDatasRepository) Update(id uint, ppidDatas *entity.PpidDatas) (err
Updates(ppidDatas).Error Updates(ppidDatas).Error
} }
func (_i *ppidDatasRepository) UpdateAll(ppidDatas []*entity.PpidDatas) (err error) {
for _, req := range ppidDatas {
err := _i.DB.DB.Model(&entity.PpidDatas{}).
Where(&entity.PpidDatas{ID: req.ID}).
Updates(req).Error
if err != nil {
return err
}
}
return nil
}
func (_i *ppidDatasRepository) Delete(id uint) error { func (_i *ppidDatasRepository) Delete(id uint) error {
return _i.DB.DB.Delete(&entity.PpidDatas{}, id).Error return _i.DB.DB.Delete(&entity.PpidDatas{}, id).Error
} }

View File

@ -85,6 +85,23 @@ func (req PpidDatasUpdateRequest) ToEntity() *entity.PpidDatas {
} }
} }
type PpidDatasUpdatePositionPayload struct {
Positions []PpidDatasUpdatePositionRequest `json:"positions"`
}
type PpidDatasUpdatePositionRequest struct {
ID uint `json:"id" validate:"required"`
Position int `json:"position" validate:"required"`
}
func (req PpidDatasUpdatePositionRequest) ToEntity() *entity.PpidDatas {
return &entity.PpidDatas{
ID: req.ID,
Position: &req.Position,
UpdatedAt: time.Now(),
}
}
type PpidDatasQueryRequestContext struct { type PpidDatasQueryRequestContext struct {
Title string `json:"title"` Title string `json:"title"`
Description string `json:"description"` Description string `json:"description"`

View File

@ -38,6 +38,7 @@ type PpidDatasService interface {
Save(req request.PpidDatasCreateRequest, authToken string) (ppidDatas *entity.PpidDatas, err error) Save(req request.PpidDatasCreateRequest, authToken string) (ppidDatas *entity.PpidDatas, err error)
Update(id uint, req request.PpidDatasUpdateRequest) (err error) Update(id uint, req request.PpidDatasUpdateRequest) (err error)
UpdateApprovalStatus(req requestPpidApproval.PpidDataApprovalHistoriesCreateRequest, authToken string) (err error) UpdateApprovalStatus(req requestPpidApproval.PpidDataApprovalHistoriesCreateRequest, authToken string) (err error)
UpdatePosition(req []request.PpidDatasUpdatePositionRequest) (err error)
Delete(id uint) error Delete(id uint) error
} }
@ -119,6 +120,11 @@ func (_i *ppidDatasService) Save(req request.PpidDatasCreateRequest, authToken s
} }
newReq.Group = userLevels.Group newReq.Group = userLevels.Group
lastPpidData, _ := _i.Repo.FindOneLastPosition()
lastPosition := lastPpidData.Position
*lastPosition += 1
newReq.Position = lastPosition
return _i.Repo.Create(newReq) return _i.Repo.Create(newReq)
} }
@ -127,6 +133,17 @@ func (_i *ppidDatasService) Update(id uint, req request.PpidDatasUpdateRequest)
return _i.Repo.Update(id, req.ToEntity()) return _i.Repo.Update(id, req.ToEntity())
} }
func (_i *ppidDatasService) UpdatePosition(req []request.PpidDatasUpdatePositionRequest) (err error) {
_i.Log.Info().Interface("data", req).Msg("")
var entityReq []*entity.PpidDatas
for _, reqItem := range req {
entityReq = append(entityReq, reqItem.ToEntity())
}
return _i.Repo.UpdateAll(entityReq)
}
func (_i *ppidDatasService) UpdateApprovalStatus(req requestPpidApproval.PpidDataApprovalHistoriesCreateRequest, authToken string) (err error) { func (_i *ppidDatasService) UpdateApprovalStatus(req requestPpidApproval.PpidDataApprovalHistoriesCreateRequest, authToken string) (err error) {
_i.Log.Info().Interface("data", req).Msg("") _i.Log.Info().Interface("data", req).Msg("")
ppidData, err := _i.Repo.FindOne(req.PpidDataId) ppidData, err := _i.Repo.FindOne(req.PpidDataId)

View File

@ -3776,6 +3776,57 @@ const docTemplate = `{
} }
} }
}, },
"/ppid-data-categories/position": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "API for Update Position PpidDataCategories",
"tags": [
"PPID Categories"
],
"summary": "UpdatePosition PpidDataCategories",
"parameters": [
{
"description": "Required payload",
"name": "payload",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.PpidDataCategoriesUpdatePositionPayload"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.BadRequestError"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/response.UnauthorizedError"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.InternalServerError"
}
}
}
}
},
"/ppid-data-categories/slug/{slug}": { "/ppid-data-categories/slug/{slug}": {
"get": { "get": {
"security": [ "security": [
@ -4202,6 +4253,57 @@ const docTemplate = `{
} }
} }
}, },
"/ppid-data-files/position": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "API for Update Position PpidDataFiles",
"tags": [
"PPID Files"
],
"summary": "UpdatePosition PpidDataFiles",
"parameters": [
{
"description": "Required payload",
"name": "payload",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.PpidDataFilesUpdatePositionPayload"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.BadRequestError"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/response.UnauthorizedError"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.InternalServerError"
}
}
}
}
},
"/ppid-data-files/viewer/{filename}": { "/ppid-data-files/viewer/{filename}": {
"get": { "get": {
"security": [ "security": [
@ -4718,6 +4820,57 @@ const docTemplate = `{
} }
} }
}, },
"/ppid-datas/position": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "API for Update Position PpidDatas",
"tags": [
"PPID Data"
],
"summary": "UpdatePosition PpidDatas",
"parameters": [
{
"description": "Required payload",
"name": "payload",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.PpidDatasUpdatePositionPayload"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.BadRequestError"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/response.UnauthorizedError"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.InternalServerError"
}
}
}
}
},
"/ppid-datas/{id}": { "/ppid-datas/{id}": {
"get": { "get": {
"security": [ "security": [
@ -7005,6 +7158,32 @@ const docTemplate = `{
} }
} }
}, },
"request.PpidDataCategoriesUpdatePositionPayload": {
"type": "object",
"properties": {
"positions": {
"type": "array",
"items": {
"$ref": "#/definitions/request.PpidDataCategoriesUpdatePositionRequest"
}
}
}
},
"request.PpidDataCategoriesUpdatePositionRequest": {
"type": "object",
"required": [
"id",
"position"
],
"properties": {
"id": {
"type": "integer"
},
"position": {
"type": "integer"
}
}
},
"request.PpidDataCategoriesUpdateRequest": { "request.PpidDataCategoriesUpdateRequest": {
"type": "object", "type": "object",
"required": [ "required": [
@ -7031,6 +7210,28 @@ const docTemplate = `{
} }
} }
}, },
"request.PpidDataFilesUpdatePositionPayload": {
"type": "object",
"properties": {
"positions": {
"type": "array",
"items": {
"$ref": "#/definitions/request.PpidDataFilesUpdatePositionRequest"
}
}
}
},
"request.PpidDataFilesUpdatePositionRequest": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"position": {
"type": "integer"
}
}
},
"request.PpidDataFilesUpdateRequest": { "request.PpidDataFilesUpdateRequest": {
"type": "object", "type": "object",
"required": [ "required": [
@ -7100,6 +7301,32 @@ const docTemplate = `{
} }
} }
}, },
"request.PpidDatasUpdatePositionPayload": {
"type": "object",
"properties": {
"positions": {
"type": "array",
"items": {
"$ref": "#/definitions/request.PpidDatasUpdatePositionRequest"
}
}
}
},
"request.PpidDatasUpdatePositionRequest": {
"type": "object",
"required": [
"id",
"position"
],
"properties": {
"id": {
"type": "integer"
},
"position": {
"type": "integer"
}
}
},
"request.UserLevelsCreateRequest": { "request.UserLevelsCreateRequest": {
"type": "object", "type": "object",
"required": [ "required": [

View File

@ -3765,6 +3765,57 @@
} }
} }
}, },
"/ppid-data-categories/position": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "API for Update Position PpidDataCategories",
"tags": [
"PPID Categories"
],
"summary": "UpdatePosition PpidDataCategories",
"parameters": [
{
"description": "Required payload",
"name": "payload",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.PpidDataCategoriesUpdatePositionPayload"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.BadRequestError"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/response.UnauthorizedError"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.InternalServerError"
}
}
}
}
},
"/ppid-data-categories/slug/{slug}": { "/ppid-data-categories/slug/{slug}": {
"get": { "get": {
"security": [ "security": [
@ -4191,6 +4242,57 @@
} }
} }
}, },
"/ppid-data-files/position": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "API for Update Position PpidDataFiles",
"tags": [
"PPID Files"
],
"summary": "UpdatePosition PpidDataFiles",
"parameters": [
{
"description": "Required payload",
"name": "payload",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.PpidDataFilesUpdatePositionPayload"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.BadRequestError"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/response.UnauthorizedError"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.InternalServerError"
}
}
}
}
},
"/ppid-data-files/viewer/{filename}": { "/ppid-data-files/viewer/{filename}": {
"get": { "get": {
"security": [ "security": [
@ -4707,6 +4809,57 @@
} }
} }
}, },
"/ppid-datas/position": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "API for Update Position PpidDatas",
"tags": [
"PPID Data"
],
"summary": "UpdatePosition PpidDatas",
"parameters": [
{
"description": "Required payload",
"name": "payload",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.PpidDatasUpdatePositionPayload"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/response.BadRequestError"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/response.UnauthorizedError"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.InternalServerError"
}
}
}
}
},
"/ppid-datas/{id}": { "/ppid-datas/{id}": {
"get": { "get": {
"security": [ "security": [
@ -6994,6 +7147,32 @@
} }
} }
}, },
"request.PpidDataCategoriesUpdatePositionPayload": {
"type": "object",
"properties": {
"positions": {
"type": "array",
"items": {
"$ref": "#/definitions/request.PpidDataCategoriesUpdatePositionRequest"
}
}
}
},
"request.PpidDataCategoriesUpdatePositionRequest": {
"type": "object",
"required": [
"id",
"position"
],
"properties": {
"id": {
"type": "integer"
},
"position": {
"type": "integer"
}
}
},
"request.PpidDataCategoriesUpdateRequest": { "request.PpidDataCategoriesUpdateRequest": {
"type": "object", "type": "object",
"required": [ "required": [
@ -7020,6 +7199,28 @@
} }
} }
}, },
"request.PpidDataFilesUpdatePositionPayload": {
"type": "object",
"properties": {
"positions": {
"type": "array",
"items": {
"$ref": "#/definitions/request.PpidDataFilesUpdatePositionRequest"
}
}
}
},
"request.PpidDataFilesUpdatePositionRequest": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"position": {
"type": "integer"
}
}
},
"request.PpidDataFilesUpdateRequest": { "request.PpidDataFilesUpdateRequest": {
"type": "object", "type": "object",
"required": [ "required": [
@ -7089,6 +7290,32 @@
} }
} }
}, },
"request.PpidDatasUpdatePositionPayload": {
"type": "object",
"properties": {
"positions": {
"type": "array",
"items": {
"$ref": "#/definitions/request.PpidDatasUpdatePositionRequest"
}
}
}
},
"request.PpidDatasUpdatePositionRequest": {
"type": "object",
"required": [
"id",
"position"
],
"properties": {
"id": {
"type": "integer"
},
"position": {
"type": "integer"
}
}
},
"request.UserLevelsCreateRequest": { "request.UserLevelsCreateRequest": {
"type": "object", "type": "object",
"required": [ "required": [

View File

@ -253,6 +253,23 @@ definitions:
- slug - slug
- title - title
type: object type: object
request.PpidDataCategoriesUpdatePositionPayload:
properties:
positions:
items:
$ref: '#/definitions/request.PpidDataCategoriesUpdatePositionRequest'
type: array
type: object
request.PpidDataCategoriesUpdatePositionRequest:
properties:
id:
type: integer
position:
type: integer
required:
- id
- position
type: object
request.PpidDataCategoriesUpdateRequest: request.PpidDataCategoriesUpdateRequest:
properties: properties:
description: description:
@ -271,6 +288,20 @@ definitions:
- slug - slug
- title - title
type: object type: object
request.PpidDataFilesUpdatePositionPayload:
properties:
positions:
items:
$ref: '#/definitions/request.PpidDataFilesUpdatePositionRequest'
type: array
type: object
request.PpidDataFilesUpdatePositionRequest:
properties:
id:
type: integer
position:
type: integer
type: object
request.PpidDataFilesUpdateRequest: request.PpidDataFilesUpdateRequest:
properties: properties:
createdById: createdById:
@ -318,6 +349,23 @@ definitions:
- statusId - statusId
- title - title
type: object type: object
request.PpidDatasUpdatePositionPayload:
properties:
positions:
items:
$ref: '#/definitions/request.PpidDatasUpdatePositionRequest'
type: array
type: object
request.PpidDatasUpdatePositionRequest:
properties:
id:
type: integer
position:
type: integer
required:
- id
- position
type: object
request.UserLevelsCreateRequest: request.UserLevelsCreateRequest:
properties: properties:
aliasName: aliasName:
@ -3090,6 +3138,38 @@ paths:
summary: Update PpidDataCategories summary: Update PpidDataCategories
tags: tags:
- PPID Categories - PPID Categories
/ppid-data-categories/position:
post:
description: API for Update Position PpidDataCategories
parameters:
- description: Required payload
in: body
name: payload
required: true
schema:
$ref: '#/definitions/request.PpidDataCategoriesUpdatePositionPayload'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
"400":
description: Bad Request
schema:
$ref: '#/definitions/response.BadRequestError'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/response.UnauthorizedError'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/response.InternalServerError'
security:
- Bearer: []
summary: UpdatePosition PpidDataCategories
tags:
- PPID Categories
/ppid-data-categories/slug/{slug}: /ppid-data-categories/slug/{slug}:
get: get:
description: API for getting one PpidDataCategories description: API for getting one PpidDataCategories
@ -3396,6 +3476,38 @@ paths:
summary: Create PpidDataFiles summary: Create PpidDataFiles
tags: tags:
- PPID Files - PPID Files
/ppid-data-files/position:
post:
description: API for Update Position PpidDataFiles
parameters:
- description: Required payload
in: body
name: payload
required: true
schema:
$ref: '#/definitions/request.PpidDataFilesUpdatePositionPayload'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
"400":
description: Bad Request
schema:
$ref: '#/definitions/response.BadRequestError'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/response.UnauthorizedError'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/response.InternalServerError'
security:
- Bearer: []
summary: UpdatePosition PpidDataFiles
tags:
- PPID Files
/ppid-data-files/viewer/{filename}: /ppid-data-files/viewer/{filename}:
get: get:
description: API for create PpidDataFiles description: API for create PpidDataFiles
@ -3685,6 +3797,38 @@ paths:
summary: UpdateApprovalStatus PpidDatas summary: UpdateApprovalStatus PpidDatas
tags: tags:
- PPID Data - PPID Data
/ppid-datas/position:
post:
description: API for Update Position PpidDatas
parameters:
- description: Required payload
in: body
name: payload
required: true
schema:
$ref: '#/definitions/request.PpidDatasUpdatePositionPayload'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
"400":
description: Bad Request
schema:
$ref: '#/definitions/response.BadRequestError'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/response.UnauthorizedError'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/response.InternalServerError'
security:
- Bearer: []
summary: UpdatePosition PpidDatas
tags:
- PPID Data
/provinces: /provinces:
get: get:
description: API for getting all Provinces description: API for getting all Provinces