feat: update ppid data approval

This commit is contained in:
hanif salafi 2024-05-05 21:55:06 +07:00
parent 1163fd1329
commit b40b91f3a1
19 changed files with 932 additions and 209 deletions

View File

@ -6,10 +6,10 @@ type PpidDataApprovalHistories struct {
ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"`
Message string `json:"message" gorm:"type:varchar"` Message string `json:"message" gorm:"type:varchar"`
ApprovalStatusId int `json:"approval_status_id" gorm:"type:int4"` ApprovalStatusId int `json:"approval_status_id" gorm:"type:int4"`
PpidDataId int `json:"ppid_data_id" gorm:"type:int4"` PpidDataId uint `json:"ppid_data_id" gorm:"type:int4"`
ApprovalBy int `json:"approval_by" gorm:"type:int4"` ApprovalBy uint `json:"approval_by" gorm:"type:int4"`
ApprovalAtLevel int `json:"approval_at_level" gorm:"type:int4"` ApprovalAtLevel int `json:"approval_at_level" gorm:"type:int4"`
IsActive bool `json:"is_active" gorm:"type:bool"` 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()"`
UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"`
} }

View File

@ -3,21 +3,24 @@ package entity
import "time" import "time"
type PpidDatas struct { type PpidDatas struct {
ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"`
Title string `json:"title" gorm:"type:varchar"` Title string `json:"title" gorm:"type:varchar"`
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"`
CategoryId uint `json:"category_id" gorm:"type:int4"` CategoryId uint `json:"category_id" gorm:"type:int4"`
CreatedById *uint `json:"created_by_id" gorm:"type:int4"` CreatedById *uint `json:"created_by_id" gorm:"type:int4"`
LevelGroupId *int `json:"level_group_id" gorm:"type:int4"` LevelGroupId *int `json:"level_group_id" gorm:"type:int4"`
Group *string `json:"group" gorm:"type:varchar"` Group *string `json:"group" gorm:"type:varchar"`
StatusId int `json:"status_id" gorm:"type:int4"` NeedApprovalFromUserRole *string `json:"need_approval_from_user_role" gorm:"type:varchar"`
NeedApprovalFrom *int `json:"need_approval_from" gorm:"type:int4"` NeedApprovalFromUserLevel *string `json:"need_approval_from_user_level" gorm:"type:varchar"`
BackApprovalTo *int `json:"back_approval_to" gorm:"type:int4"` BackApprovalToUserRole *int `json:"back_approval_to_user_role" gorm:"type:varchar"`
IsPublish *bool `json:"is_publish" gorm:"type:bool;default:false"` BackApprovalToUserLevel *int `json:"back_approval_to_user_level" gorm:"type:varchar"`
PublishLevel *int `json:"publish_level" gorm:"type:int4"` IsPublish *bool `json:"is_publish" gorm:"type:bool;default:false"`
PublishedAt *time.Time `json:"published_at" gorm:"type:timestamp"` PublishLevel *int `json:"publish_level" gorm:"type:int4"`
IsActive *bool `json:"is_active" gorm:"type:bool;default:true"` PublishedAt *time.Time `json:"published_at" gorm:"type:timestamp"`
CreatedAt time.Time `json:"created_at" gorm:"default:now()"` ApprovalStatusId int `json:"approval_status_id" gorm:"type:int4"`
UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` StatusId int `json:"status_id" gorm:"type:int4"`
IsActive *bool `json:"is_active" gorm:"type:bool;default:true"`
CreatedAt time.Time `json:"created_at" gorm:"default:now()"`
UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"`
} }

View File

@ -78,8 +78,10 @@ func Models() []interface{} {
entity.MasterMenus{}, entity.MasterMenus{},
entity.MasterModules{}, entity.MasterModules{},
entity.MasterStatuses{}, entity.MasterStatuses{},
entity.MasterApprovalStatuses{},
entity.PpidDatas{}, entity.PpidDatas{},
entity.PpidDataFiles{}, entity.PpidDataFiles{},
entity.PpidDataApprovalHistories{},
entity.PpidDataCategories{}, entity.PpidDataCategories{},
entity.Provinces{}, entity.Provinces{},
entity.UserLevels{}, entity.UserLevels{},

View File

@ -4,7 +4,6 @@ import (
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"go-humas-be/app/module/ppid_data_approval_histories/request" "go-humas-be/app/module/ppid_data_approval_histories/request"
"go-humas-be/app/module/ppid_data_approval_histories/service" "go-humas-be/app/module/ppid_data_approval_histories/service"
"go-humas-be/utils/paginator"
"strconv" "strconv"
utilRes "go-humas-be/utils/response" utilRes "go-humas-be/utils/response"
@ -18,8 +17,8 @@ type ppidDataApprovalHistoriesController struct {
type PpidDataApprovalHistoriesController interface { type PpidDataApprovalHistoriesController interface {
All(c *fiber.Ctx) error All(c *fiber.Ctx) error
Show(c *fiber.Ctx) error Show(c *fiber.Ctx) error
ShowByPpidData(c *fiber.Ctx) error
Save(c *fiber.Ctx) error Save(c *fiber.Ctx) error
Update(c *fiber.Ctx) error
Delete(c *fiber.Ctx) error Delete(c *fiber.Ctx) error
} }
@ -29,49 +28,39 @@ func NewPpidDataApprovalHistoriesController(ppidDataApprovalHistoriesService ser
} }
} }
// All get all PpidDataApprovalHistories // All PpidDataApprovalHistories
// @Summary Get all PpidDataApprovalHistories // @Summary Get all PpidDataApprovalHistories
// @Description API for getting all PpidDataApprovalHistories // @Description API for getting all PpidDataApprovalHistories
// @Tags Task // @Tags Task
// @Security Bearer // @Security Bearer
// @Success 200 {object} response.Response // @Success 200 {object} response.Response
// @Failure 401 {object} response.Response // @Failure 400 {object} response.BadRequestError
// @Failure 404 {object} response.Response // @Failure 401 {object} response.UnauthorizedError
// @Failure 422 {object} response.Response // @Failure 500 {object} response.InternalServerError
// @Failure 500 {object} response.Response
// @Router /ppid-data-approval-histories [get] // @Router /ppid-data-approval-histories [get]
func (_i *ppidDataApprovalHistoriesController) All(c *fiber.Ctx) error { func (_i *ppidDataApprovalHistoriesController) All(c *fiber.Ctx) error {
paginate, err := paginator.Paginate(c) ppidDataApprovalHistoriesData, err := _i.ppidDataApprovalHistoriesService.All()
if err != nil {
return err
}
var req request.PpidDataApprovalHistoriesQueryRequest
req.Pagination = paginate
ppidDataApprovalHistoriesData, paging, err := _i.ppidDataApprovalHistoriesService.All(req)
if err != nil { if err != nil {
return err return err
} }
return utilRes.Resp(c, utilRes.Response{ return utilRes.Resp(c, utilRes.Response{
Success: true,
Messages: utilRes.Messages{"PpidDataApprovalHistories list successfully retrieved"}, Messages: utilRes.Messages{"PpidDataApprovalHistories list successfully retrieved"},
Data: ppidDataApprovalHistoriesData, Data: ppidDataApprovalHistoriesData,
Meta: paging,
}) })
} }
// Show get one PpidDataApprovalHistories // Show PpidDataApprovalHistories
// @Summary Get one PpidDataApprovalHistories // @Summary Get one PpidDataApprovalHistories
// @Description API for getting one PpidDataApprovalHistories // @Description API for getting one PpidDataApprovalHistories
// @Tags Task // @Tags Task
// @Security Bearer // @Security Bearer
// @Param id path int true "PpidDataApprovalHistories ID" // @Param id path int true "PpidDataApprovalHistories ID"
// @Success 200 {object} response.Response // @Success 200 {object} response.Response
// @Failure 401 {object} response.Response // @Failure 400 {object} response.BadRequestError
// @Failure 404 {object} response.Response // @Failure 401 {object} response.UnauthorizedError
// @Failure 422 {object} response.Response // @Failure 500 {object} response.InternalServerError
// @Failure 500 {object} response.Response
// @Router /ppid-data-approval-histories/:id [get] // @Router /ppid-data-approval-histories/:id [get]
func (_i *ppidDataApprovalHistoriesController) Show(c *fiber.Ctx) error { func (_i *ppidDataApprovalHistoriesController) Show(c *fiber.Ctx) error {
id, err := strconv.ParseUint(c.Params("id"), 10, 0) id, err := strconv.ParseUint(c.Params("id"), 10, 0)
@ -85,6 +74,36 @@ func (_i *ppidDataApprovalHistoriesController) Show(c *fiber.Ctx) error {
} }
return utilRes.Resp(c, utilRes.Response{ return utilRes.Resp(c, utilRes.Response{
Success: true,
Messages: utilRes.Messages{"PpidDataApprovalHistories successfully retrieved"},
Data: ppidDataApprovalHistoriesData,
})
}
// ShowByPpidData PpidDataApprovalHistories
// @Summary Get one PpidDataApprovalHistories
// @Description API for getting one PpidDataApprovalHistories
// @Tags Task
// @Security Bearer
// @Param ppidDataId path int true "PpidData ID"
// @Success 200 {object} response.Response
// @Failure 400 {object} response.BadRequestError
// @Failure 401 {object} response.UnauthorizedError
// @Failure 500 {object} response.InternalServerError
// @Router /ppid-data-approval-histories/ppid-data/:ppidDataId [get]
func (_i *ppidDataApprovalHistoriesController) ShowByPpidData(c *fiber.Ctx) error {
ppidDataId, err := strconv.Atoi(c.Params("ppidDataId"))
if err != nil {
return err
}
ppidDataApprovalHistoriesData, err := _i.ppidDataApprovalHistoriesService.ShowByPpidData(uint(ppidDataId))
if err != nil {
return err
}
return utilRes.Resp(c, utilRes.Response{
Success: true,
Messages: utilRes.Messages{"PpidDataApprovalHistories successfully retrieved"}, Messages: utilRes.Messages{"PpidDataApprovalHistories successfully retrieved"},
Data: ppidDataApprovalHistoriesData, Data: ppidDataApprovalHistoriesData,
}) })
@ -95,6 +114,7 @@ func (_i *ppidDataApprovalHistoriesController) Show(c *fiber.Ctx) error {
// @Description API for create PpidDataApprovalHistories // @Description API for create PpidDataApprovalHistories
// @Tags Task // @Tags Task
// @Security Bearer // @Security Bearer
// @Param Authorization header string true "Insert your access token" default(Bearer <Add access token here>)
// @Body request.PpidDataApprovalHistoriesCreateRequest // @Body request.PpidDataApprovalHistoriesCreateRequest
// @Success 200 {object} response.Response // @Success 200 {object} response.Response
// @Failure 401 {object} response.Response // @Failure 401 {object} response.Response
@ -108,7 +128,9 @@ func (_i *ppidDataApprovalHistoriesController) Save(c *fiber.Ctx) error {
return err return err
} }
err := _i.ppidDataApprovalHistoriesService.Save(*req) authToken := c.Get("Authorization")
err := _i.ppidDataApprovalHistoriesService.Save(*req, authToken)
if err != nil { if err != nil {
return err return err
} }
@ -118,40 +140,6 @@ func (_i *ppidDataApprovalHistoriesController) Save(c *fiber.Ctx) error {
}) })
} }
// Update update PpidDataApprovalHistories
// @Summary update PpidDataApprovalHistories
// @Description API for update PpidDataApprovalHistories
// @Tags Task
// @Security Bearer
// @Body request.PpidDataApprovalHistoriesUpdateRequest
// @Param id path int true "PpidDataApprovalHistories ID"
// @Success 200 {object} response.Response
// @Failure 401 {object} response.Response
// @Failure 404 {object} response.Response
// @Failure 422 {object} response.Response
// @Failure 500 {object} response.Response
// @Router /ppid-data-approval-histories/:id [put]
func (_i *ppidDataApprovalHistoriesController) Update(c *fiber.Ctx) error {
id, err := strconv.ParseUint(c.Params("id"), 10, 0)
if err != nil {
return err
}
req := new(request.PpidDataApprovalHistoriesUpdateRequest)
if err := utilVal.ParseAndValidate(c, req); err != nil {
return err
}
err = _i.ppidDataApprovalHistoriesService.Update(uint(id), *req)
if err != nil {
return err
}
return utilRes.Resp(c, utilRes.Response{
Messages: utilRes.Messages{"PpidDataApprovalHistories successfully updated"},
})
}
// Delete delete PpidDataApprovalHistories // Delete delete PpidDataApprovalHistories
// @Summary delete PpidDataApprovalHistories // @Summary delete PpidDataApprovalHistories
// @Description API for delete PpidDataApprovalHistories // @Description API for delete PpidDataApprovalHistories

View File

@ -3,16 +3,25 @@ package mapper
import ( import (
"go-humas-be/app/database/entity" "go-humas-be/app/database/entity"
res "go-humas-be/app/module/ppid_data_approval_histories/response" res "go-humas-be/app/module/ppid_data_approval_histories/response"
usersRepository "go-humas-be/app/module/users/repository"
) )
func PpidDataApprovalHistoriesResponseMapper(ppidDataApprovalHistoriesReq *entity.PpidDataApprovalHistories) (ppidDataApprovalHistoriesRes *res.PpidDataApprovalHistoriesResponse) { func PpidDataApprovalHistoriesResponseMapper(ppidDataApprovalHistoriesReq *entity.PpidDataApprovalHistories, usersRepo usersRepository.UsersRepository) (ppidDataApprovalHistoriesRes *res.PpidDataApprovalHistoriesResponse) {
if ppidDataApprovalHistoriesReq != nil { if ppidDataApprovalHistoriesReq != nil {
findUser, _ := usersRepo.FindOne(ppidDataApprovalHistoriesReq.ApprovalBy)
createdByName := ""
if findUser != nil {
createdByName = findUser.Fullname
}
ppidDataApprovalHistoriesRes = &res.PpidDataApprovalHistoriesResponse{ ppidDataApprovalHistoriesRes = &res.PpidDataApprovalHistoriesResponse{
ID: ppidDataApprovalHistoriesReq.ID, ID: ppidDataApprovalHistoriesReq.ID,
Message: ppidDataApprovalHistoriesReq.Message, Message: ppidDataApprovalHistoriesReq.Message,
ApprovalStatusId: ppidDataApprovalHistoriesReq.ApprovalStatusId, ApprovalStatusId: ppidDataApprovalHistoriesReq.ApprovalStatusId,
PpidDataId: ppidDataApprovalHistoriesReq.PpidDataId, PpidDataId: ppidDataApprovalHistoriesReq.PpidDataId,
ApprovalBy: ppidDataApprovalHistoriesReq.ApprovalBy, ApprovalById: ppidDataApprovalHistoriesReq.ApprovalBy,
ApprovalByName: createdByName,
ApprovalAtLevel: ppidDataApprovalHistoriesReq.ApprovalAtLevel, ApprovalAtLevel: ppidDataApprovalHistoriesReq.ApprovalAtLevel,
IsActive: ppidDataApprovalHistoriesReq.IsActive, IsActive: ppidDataApprovalHistoriesReq.IsActive,
CreatedAt: ppidDataApprovalHistoriesReq.CreatedAt, CreatedAt: ppidDataApprovalHistoriesReq.CreatedAt,

View File

@ -46,8 +46,8 @@ func (_i *PpidDataApprovalHistoriesRouter) RegisterPpidDataApprovalHistoriesRout
_i.App.Route("/ppid-data-approval-histories", func(router fiber.Router) { _i.App.Route("/ppid-data-approval-histories", func(router fiber.Router) {
router.Get("/", ppidDataApprovalHistoriesController.All) router.Get("/", ppidDataApprovalHistoriesController.All)
router.Get("/:id", ppidDataApprovalHistoriesController.Show) router.Get("/:id", ppidDataApprovalHistoriesController.Show)
router.Get("/ppid-data/:ppidDataId", ppidDataApprovalHistoriesController.ShowByPpidData)
router.Post("/", ppidDataApprovalHistoriesController.Save) router.Post("/", ppidDataApprovalHistoriesController.Save)
router.Put("/:id", ppidDataApprovalHistoriesController.Update)
router.Delete("/:id", ppidDataApprovalHistoriesController.Delete) router.Delete("/:id", ppidDataApprovalHistoriesController.Delete)
}) })
} }

View File

@ -3,8 +3,6 @@ package repository
import ( import (
"go-humas-be/app/database" "go-humas-be/app/database"
"go-humas-be/app/database/entity" "go-humas-be/app/database/entity"
"go-humas-be/app/module/ppid_data_approval_histories/request"
"go-humas-be/utils/paginator"
) )
type ppidDataApprovalHistoriesRepository struct { type ppidDataApprovalHistoriesRepository struct {
@ -13,8 +11,9 @@ type ppidDataApprovalHistoriesRepository struct {
// PpidDataApprovalHistoriesRepository define interface of IPpidDataApprovalHistoriesRepository // PpidDataApprovalHistoriesRepository define interface of IPpidDataApprovalHistoriesRepository
type PpidDataApprovalHistoriesRepository interface { type PpidDataApprovalHistoriesRepository interface {
GetAll(req request.PpidDataApprovalHistoriesQueryRequest) (ppidDataApprovalHistoriess []*entity.PpidDataApprovalHistories, paging paginator.Pagination, err error) GetAll() (ppidDataApprovalHistories []*entity.PpidDataApprovalHistories, err error)
FindOne(id uint) (ppidDataApprovalHistories *entity.PpidDataApprovalHistories, err error) FindOne(id uint) (ppidDataApprovalHistories *entity.PpidDataApprovalHistories, err error)
FindByPpidData(ppidDataId uint) (ppidDataApprovalHistories []*entity.PpidDataApprovalHistories, err error)
Create(ppidDataApprovalHistories *entity.PpidDataApprovalHistories) (err error) Create(ppidDataApprovalHistories *entity.PpidDataApprovalHistories) (err error)
Update(id uint, ppidDataApprovalHistories *entity.PpidDataApprovalHistories) (err error) Update(id uint, ppidDataApprovalHistories *entity.PpidDataApprovalHistories) (err error)
Delete(id uint) (err error) Delete(id uint) (err error)
@ -27,23 +26,13 @@ func NewPpidDataApprovalHistoriesRepository(db *database.Database) PpidDataAppro
} }
// implement interface of IPpidDataApprovalHistoriesRepository // implement interface of IPpidDataApprovalHistoriesRepository
func (_i *ppidDataApprovalHistoriesRepository) GetAll(req request.PpidDataApprovalHistoriesQueryRequest) (ppidDataApprovalHistoriess []*entity.PpidDataApprovalHistories, paging paginator.Pagination, err error) { func (_i *ppidDataApprovalHistoriesRepository) GetAll() (ppidDataApprovalHistories []*entity.PpidDataApprovalHistories, err error) {
var count int64 if err := _i.DB.DB.Find(&ppidDataApprovalHistories).
Where(&entity.PpidDataApprovalHistories{IsActive: true}).Error; err != nil {
query := _i.DB.DB.Model(&entity.PpidDataApprovalHistories{}) return nil, err
query.Count(&count)
req.Pagination.Count = count
req.Pagination = paginator.Paging(req.Pagination)
err = query.Offset(req.Pagination.Offset).Limit(req.Pagination.Limit).Find(&ppidDataApprovalHistoriess).Error
if err != nil {
return
} }
paging = *req.Pagination return ppidDataApprovalHistories, nil
return
} }
func (_i *ppidDataApprovalHistoriesRepository) FindOne(id uint) (ppidDataApprovalHistories *entity.PpidDataApprovalHistories, err error) { func (_i *ppidDataApprovalHistoriesRepository) FindOne(id uint) (ppidDataApprovalHistories *entity.PpidDataApprovalHistories, err error) {
@ -54,6 +43,15 @@ func (_i *ppidDataApprovalHistoriesRepository) FindOne(id uint) (ppidDataApprova
return ppidDataApprovalHistories, nil return ppidDataApprovalHistories, nil
} }
func (_i *ppidDataApprovalHistoriesRepository) FindByPpidData(ppidDataId uint) (ppidDataApprovalHistories []*entity.PpidDataApprovalHistories, err error) {
if err := _i.DB.DB.Find(&ppidDataApprovalHistories).
Where(&entity.PpidDataApprovalHistories{PpidDataId: ppidDataId, IsActive: true}).Error; err != nil {
return nil, err
}
return ppidDataApprovalHistories, nil
}
func (_i *ppidDataApprovalHistoriesRepository) Create(ppidDataApprovalHistories *entity.PpidDataApprovalHistories) (err error) { func (_i *ppidDataApprovalHistoriesRepository) Create(ppidDataApprovalHistories *entity.PpidDataApprovalHistories) (err error) {
return _i.DB.DB.Create(ppidDataApprovalHistories).Error return _i.DB.DB.Create(ppidDataApprovalHistories).Error
} }

View File

@ -2,66 +2,24 @@ package request
import ( import (
"go-humas-be/app/database/entity" "go-humas-be/app/database/entity"
"go-humas-be/utils/paginator"
"time"
) )
type PpidDataApprovalHistoriesGeneric interface { type PpidDataApprovalHistoriesGeneric interface {
ToEntity() ToEntity()
} }
type PpidDataApprovalHistoriesQueryRequest struct {
Message string `json:"message" validate:"required"`
ApprovalStatusId int `json:"approval_status_id" validate:"required"`
PpidDataId int `json:"ppid_data_id" validate:"required"`
ApprovalBy int `json:"approval_by" validate:"required"`
ApprovalAtLevel int `json:"approval_at_level" validate:"required"`
IsActive bool `json:"is_active" validate:"required"`
Pagination *paginator.Pagination `json:"pagination"`
}
type PpidDataApprovalHistoriesCreateRequest struct { type PpidDataApprovalHistoriesCreateRequest struct {
PpidDataId uint `json:"ppidDataId" validate:"required"`
Message string `json:"message" validate:"required"` Message string `json:"message" validate:"required"`
ApprovalStatusId int `json:"approval_status_id" validate:"required"` ApprovalStatusId int `json:"approvalStatusId" validate:"required"`
PpidDataId int `json:"ppid_data_id" validate:"required"` ApprovalAtLevel int `json:"approvalAtLevel" validate:"required"`
ApprovalBy int `json:"approval_by" validate:"required"`
ApprovalAtLevel int `json:"approval_at_level" validate:"required"`
IsActive bool `json:"is_active" validate:"required"`
} }
func (req PpidDataApprovalHistoriesCreateRequest) ToEntity() *entity.PpidDataApprovalHistories { func (req PpidDataApprovalHistoriesCreateRequest) ToEntity() *entity.PpidDataApprovalHistories {
return &entity.PpidDataApprovalHistories{ return &entity.PpidDataApprovalHistories{
PpidDataId: req.PpidDataId,
Message: req.Message, Message: req.Message,
ApprovalStatusId: req.ApprovalStatusId, ApprovalStatusId: req.ApprovalStatusId,
PpidDataId: req.PpidDataId,
ApprovalBy: req.ApprovalBy,
ApprovalAtLevel: req.ApprovalAtLevel, ApprovalAtLevel: req.ApprovalAtLevel,
IsActive: req.IsActive,
}
}
type PpidDataApprovalHistoriesUpdateRequest struct {
ID uint `json:"id" validate:"required"`
Message string `json:"message" validate:"required"`
ApprovalStatusId int `json:"approval_status_id" validate:"required"`
PpidDataId int `json:"ppid_data_id" validate:"required"`
ApprovalBy int `json:"approval_by" validate:"required"`
ApprovalAtLevel int `json:"approval_at_level" validate:"required"`
IsActive bool `json:"is_active" validate:"required"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
func (req PpidDataApprovalHistoriesUpdateRequest) ToEntity() *entity.PpidDataApprovalHistories {
return &entity.PpidDataApprovalHistories{
ID: req.ID,
Message: req.Message,
ApprovalStatusId: req.ApprovalStatusId,
PpidDataId: req.PpidDataId,
ApprovalBy: req.ApprovalBy,
ApprovalAtLevel: req.ApprovalAtLevel,
IsActive: req.IsActive,
CreatedAt: req.CreatedAt,
UpdatedAt: req.UpdatedAt,
} }
} }

View File

@ -6,8 +6,9 @@ type PpidDataApprovalHistoriesResponse struct {
ID uint `json:"id"` ID uint `json:"id"`
Message string `json:"message"` Message string `json:"message"`
ApprovalStatusId int `json:"approval_status_id"` ApprovalStatusId int `json:"approval_status_id"`
PpidDataId int `json:"ppid_data_id"` PpidDataId uint `json:"ppid_data_id"`
ApprovalBy int `json:"approval_by"` ApprovalById uint `json:"approval_by_id"`
ApprovalByName string `json:"approval_by_name"`
ApprovalAtLevel int `json:"approval_at_level"` ApprovalAtLevel int `json:"approval_at_level"`
IsActive bool `json:"is_active"` IsActive bool `json:"is_active"`
CreatedAt time.Time `json:"created_at"` CreatedAt time.Time `json:"created_at"`

View File

@ -6,42 +6,45 @@ import (
"go-humas-be/app/module/ppid_data_approval_histories/repository" "go-humas-be/app/module/ppid_data_approval_histories/repository"
"go-humas-be/app/module/ppid_data_approval_histories/request" "go-humas-be/app/module/ppid_data_approval_histories/request"
"go-humas-be/app/module/ppid_data_approval_histories/response" "go-humas-be/app/module/ppid_data_approval_histories/response"
"go-humas-be/utils/paginator" usersRepository "go-humas-be/app/module/users/repository"
utilSvc "go-humas-be/utils/service"
) )
// PpidDataApprovalHistoriesService // PpidDataApprovalHistoriesService
type ppidDataApprovalHistoriesService struct { type ppidDataApprovalHistoriesService struct {
Repo repository.PpidDataApprovalHistoriesRepository Repo repository.PpidDataApprovalHistoriesRepository
Log zerolog.Logger UsersRepo usersRepository.UsersRepository
Log zerolog.Logger
} }
// PpidDataApprovalHistoriesService define interface of IPpidDataApprovalHistoriesService // PpidDataApprovalHistoriesService define interface of IPpidDataApprovalHistoriesService
type PpidDataApprovalHistoriesService interface { type PpidDataApprovalHistoriesService interface {
All(req request.PpidDataApprovalHistoriesQueryRequest) (ppidDataApprovalHistories []*response.PpidDataApprovalHistoriesResponse, paging paginator.Pagination, err error) All() (ppidDataApprovalHistories []*response.PpidDataApprovalHistoriesResponse, err error)
Show(id uint) (ppidDataApprovalHistories *response.PpidDataApprovalHistoriesResponse, err error) Show(id uint) (ppidDataApprovalHistories *response.PpidDataApprovalHistoriesResponse, err error)
Save(req request.PpidDataApprovalHistoriesCreateRequest) (err error) ShowByPpidData(ppidDataId uint) (ppidDataApprovalHistories []*response.PpidDataApprovalHistoriesResponse, err error)
Update(id uint, req request.PpidDataApprovalHistoriesUpdateRequest) (err error) Save(req request.PpidDataApprovalHistoriesCreateRequest, authToken string) (err error)
Delete(id uint) error Delete(id uint) error
} }
// NewPpidDataApprovalHistoriesService init PpidDataApprovalHistoriesService // NewPpidDataApprovalHistoriesService init PpidDataApprovalHistoriesService
func NewPpidDataApprovalHistoriesService(repo repository.PpidDataApprovalHistoriesRepository, log zerolog.Logger) PpidDataApprovalHistoriesService { func NewPpidDataApprovalHistoriesService(repo repository.PpidDataApprovalHistoriesRepository, usersRepo usersRepository.UsersRepository, log zerolog.Logger) PpidDataApprovalHistoriesService {
return &ppidDataApprovalHistoriesService{ return &ppidDataApprovalHistoriesService{
Repo: repo, Repo: repo,
Log: log, UsersRepo: usersRepo,
Log: log,
} }
} }
// All implement interface of PpidDataApprovalHistoriesService // All implement interface of PpidDataApprovalHistoriesService
func (_i *ppidDataApprovalHistoriesService) All(req request.PpidDataApprovalHistoriesQueryRequest) (ppidDataApprovalHistoriess []*response.PpidDataApprovalHistoriesResponse, paging paginator.Pagination, err error) { func (_i *ppidDataApprovalHistoriesService) All() (ppidDataApprovalHistories []*response.PpidDataApprovalHistoriesResponse, err error) {
results, paging, err := _i.Repo.GetAll(req) results, err := _i.Repo.GetAll()
if err != nil { if err != nil {
return return
} }
for _, result := range results { for _, result := range results {
ppidDataApprovalHistoriess = append(ppidDataApprovalHistoriess, mapper.PpidDataApprovalHistoriesResponseMapper(result)) ppidDataApprovalHistories = append(ppidDataApprovalHistories, mapper.PpidDataApprovalHistoriesResponseMapper(result, _i.UsersRepo))
} }
return return
@ -53,18 +56,30 @@ func (_i *ppidDataApprovalHistoriesService) Show(id uint) (ppidDataApprovalHisto
return nil, err return nil, err
} }
return mapper.PpidDataApprovalHistoriesResponseMapper(result), nil return mapper.PpidDataApprovalHistoriesResponseMapper(result, _i.UsersRepo), nil
} }
func (_i *ppidDataApprovalHistoriesService) Save(req request.PpidDataApprovalHistoriesCreateRequest) (err error) { func (_i *ppidDataApprovalHistoriesService) ShowByPpidData(ppidDataId uint) (ppidDataApprovalHistories []*response.PpidDataApprovalHistoriesResponse, err error) {
_i.Log.Info().Interface("data", req).Msg("") results, err := _i.Repo.FindByPpidData(ppidDataId)
if err != nil {
return nil, err
}
return _i.Repo.Create(req.ToEntity()) for _, result := range results {
ppidDataApprovalHistories = append(ppidDataApprovalHistories, mapper.PpidDataApprovalHistoriesResponseMapper(result, _i.UsersRepo))
}
return
} }
func (_i *ppidDataApprovalHistoriesService) Update(id uint, req request.PpidDataApprovalHistoriesUpdateRequest) (err error) { func (_i *ppidDataApprovalHistoriesService) Save(req request.PpidDataApprovalHistoriesCreateRequest, authToken string) (err error) {
_i.Log.Info().Interface("data", req).Msg("") _i.Log.Info().Interface("data", req).Msg("")
return _i.Repo.Update(id, req.ToEntity()) newReq := req.ToEntity()
createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
newReq.ApprovalBy = createdBy.ID
return _i.Repo.Create(newReq)
} }
func (_i *ppidDataApprovalHistoriesService) Delete(id uint) error { func (_i *ppidDataApprovalHistoriesService) Delete(id uint) error {

View File

@ -7,6 +7,7 @@ import (
"go-humas-be/utils/paginator" "go-humas-be/utils/paginator"
"strconv" "strconv"
requestPpidApproval "go-humas-be/app/module/ppid_data_approval_histories/request"
utilRes "go-humas-be/utils/response" utilRes "go-humas-be/utils/response"
utilVal "go-humas-be/utils/validator" utilVal "go-humas-be/utils/validator"
) )
@ -20,6 +21,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
UpdateApprovalStatus(c *fiber.Ctx) error
Delete(c *fiber.Ctx) error Delete(c *fiber.Ctx) error
} }
@ -162,6 +164,35 @@ func (_i *ppidDatasController) Update(c *fiber.Ctx) error {
}) })
} }
// UpdateApprovalStatus PpidDatas
// @Summary UpdateApprovalStatus PpidDatas
// @Description API for UpdateApprovalStatus PpidDatas
// @Tags PPID Data
// @Security Bearer
// @Param payload body requestPpidApproval.PpidDataApprovalHistoriesCreateRequest 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/approval [put]
func (_i *ppidDatasController) UpdateApprovalStatus(c *fiber.Ctx) error {
req := new(requestPpidApproval.PpidDataApprovalHistoriesCreateRequest)
if err := utilVal.ParseAndValidate(c, req); err != nil {
return err
}
authToken := c.Get("Authorization")
err := _i.ppidDatasService.UpdateApprovalStatus(*req, authToken)
if err != nil {
return err
}
return utilRes.Resp(c, utilRes.Response{
Success: true,
Messages: utilRes.Messages{"PpidDatas 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.Put("/approval", ppidDatasController.UpdateApprovalStatus)
router.Delete("/:id", ppidDatasController.Delete) router.Delete("/:id", ppidDatasController.Delete)
}) })
} }

View File

@ -29,7 +29,6 @@ type PpidDatasCreateRequest struct {
Slug string `json:"slug" validate:"required"` Slug string `json:"slug" validate:"required"`
CategoryId uint `json:"categoryId" validate:"required"` CategoryId uint `json:"categoryId" validate:"required"`
StatusId int `json:"statusId" validate:"required"` StatusId int `json:"statusId" validate:"required"`
CreatedById *uint `json:"createdById"`
LevelGroupId *int `json:"levelGroupId"` LevelGroupId *int `json:"levelGroupId"`
Group *string `json:"group"` Group *string `json:"group"`
} }
@ -40,7 +39,6 @@ func (req PpidDatasCreateRequest) ToEntity() *entity.PpidDatas {
Description: req.Description, Description: req.Description,
Slug: req.Slug, Slug: req.Slug,
CategoryId: req.CategoryId, CategoryId: req.CategoryId,
CreatedById: req.CreatedById,
StatusId: req.StatusId, StatusId: req.StatusId,
LevelGroupId: req.LevelGroupId, LevelGroupId: req.LevelGroupId,
Group: req.Group, Group: req.Group,
@ -48,33 +46,40 @@ func (req PpidDatasCreateRequest) ToEntity() *entity.PpidDatas {
} }
type PpidDatasUpdateRequest struct { type PpidDatasUpdateRequest struct {
ID uint `json:"id" validate:"required"` ID uint `json:"id" validate:"required"`
Title string `json:"title" validate:"required"` Title string `json:"title" validate:"required"`
Description string `json:"description" validate:"required"` Description string `json:"description" validate:"required"`
Slug string `json:"slug" validate:"required"` Slug string `json:"slug" validate:"required"`
CategoryId uint `json:"category_id" validate:"required"` CategoryId uint `json:"categoryId" validate:"required"`
StatusId int `json:"status_id" validate:"required"` StatusId int `json:"statusId" validate:"required"`
CreatedById *uint `json:"created_by_id"` NeedApprovalFromUserRole *string `json:"needApprovalFrom"`
IsPublish *bool `json:"is_publish"` NeedApprovalFromUserLevel *string `json:"needApprovalFromUserLevel"`
PublishedAt *time.Time `json:"published_at"` BackApprovalToUserRole *int `json:"backApprovalToUserRole"`
LevelGroupId *int `json:"levelGroupId"` BackApprovalToUserLevel *int `json:"backApprovalToUserLevel"`
Group *string `json:"group"` IsPublish *bool `json:"isPublish"`
PublishLevel *int `json:"publishLevel"`
PublishedAt *time.Time `json:"publishedAt"`
LevelGroupId *int `json:"levelGroupId"`
Group *string `json:"group"`
} }
func (req PpidDatasUpdateRequest) ToEntity() *entity.PpidDatas { func (req PpidDatasUpdateRequest) ToEntity() *entity.PpidDatas {
return &entity.PpidDatas{ return &entity.PpidDatas{
ID: req.ID, ID: req.ID,
Title: req.Title, Title: req.Title,
Description: req.Description, Description: req.Description,
Slug: req.Slug, Slug: req.Slug,
CategoryId: req.CategoryId, CategoryId: req.CategoryId,
CreatedById: req.CreatedById, StatusId: req.StatusId,
StatusId: req.StatusId, NeedApprovalFromUserRole: req.NeedApprovalFromUserRole,
IsPublish: req.IsPublish, NeedApprovalFromUserLevel: req.NeedApprovalFromUserLevel,
PublishedAt: req.PublishedAt, BackApprovalToUserRole: req.BackApprovalToUserRole,
LevelGroupId: req.LevelGroupId, BackApprovalToUserLevel: req.BackApprovalToUserLevel,
Group: req.Group, IsPublish: req.IsPublish,
UpdatedAt: time.Now(), PublishedAt: req.PublishedAt,
LevelGroupId: req.LevelGroupId,
Group: req.Group,
UpdatedAt: time.Now(),
} }
} }

View File

@ -1,8 +1,10 @@
package service package service
import ( import (
"fmt"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"go-humas-be/app/database/entity" "go-humas-be/app/database/entity"
requestPpidApproval "go-humas-be/app/module/ppid_data_approval_histories/request"
ppidDataCategoriesRepository "go-humas-be/app/module/ppid_data_categories/repository" ppidDataCategoriesRepository "go-humas-be/app/module/ppid_data_categories/repository"
ppidDataFilesRepository "go-humas-be/app/module/ppid_data_files/repository" ppidDataFilesRepository "go-humas-be/app/module/ppid_data_files/repository"
"go-humas-be/app/module/ppid_datas/mapper" "go-humas-be/app/module/ppid_datas/mapper"
@ -10,20 +12,24 @@ import (
"go-humas-be/app/module/ppid_datas/request" "go-humas-be/app/module/ppid_datas/request"
"go-humas-be/app/module/ppid_datas/response" "go-humas-be/app/module/ppid_datas/response"
userLevelsRepository "go-humas-be/app/module/user_levels/repository" userLevelsRepository "go-humas-be/app/module/user_levels/repository"
userRoleLevelDetailsRepository "go-humas-be/app/module/user_role_level_details/repository"
usersRepository "go-humas-be/app/module/users/repository" usersRepository "go-humas-be/app/module/users/repository"
"go-humas-be/utils/paginator" "go-humas-be/utils/paginator"
utilSvc "go-humas-be/utils/service" utilSvc "go-humas-be/utils/service"
"strconv" "strconv"
"strings"
"time"
) )
// PpidDatasService // PpidDatasService
type ppidDatasService struct { type ppidDatasService struct {
Repo repository.PpidDatasRepository Repo repository.PpidDatasRepository
PpidDataCategoriesRepo ppidDataCategoriesRepository.PpidDataCategoriesRepository PpidDataCategoriesRepo ppidDataCategoriesRepository.PpidDataCategoriesRepository
PpidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository PpidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository
UsersRepo usersRepository.UsersRepository UsersRepo usersRepository.UsersRepository
UserLevelsRepo userLevelsRepository.UserLevelsRepository UserLevelsRepo userLevelsRepository.UserLevelsRepository
Log zerolog.Logger userRoleLevelDetailsRepo userRoleLevelDetailsRepository.UserRoleLevelDetailsRepository
Log zerolog.Logger
} }
// PpidDatasService define interface of IPpidDatasService // PpidDatasService define interface of IPpidDatasService
@ -32,6 +38,7 @@ type PpidDatasService interface {
Show(id string) (ppidDatas *response.PpidDatasResponse, err error) Show(id string) (ppidDatas *response.PpidDatasResponse, err error)
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)
Delete(id uint) error Delete(id uint) error
} }
@ -42,16 +49,18 @@ func NewPpidDatasService(
ppidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository, ppidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository,
usersRepo usersRepository.UsersRepository, usersRepo usersRepository.UsersRepository,
userLevelsRepo userLevelsRepository.UserLevelsRepository, userLevelsRepo userLevelsRepository.UserLevelsRepository,
userRoleLevelDetailsRepo userRoleLevelDetailsRepository.UserRoleLevelDetailsRepository,
log zerolog.Logger, log zerolog.Logger,
) PpidDatasService { ) PpidDatasService {
return &ppidDatasService{ return &ppidDatasService{
Repo: repo, Repo: repo,
PpidDataCategoriesRepo: ppidDataCategoriesRepo, PpidDataCategoriesRepo: ppidDataCategoriesRepo,
PpidDataFilesRepo: ppidDataFilesRepo, PpidDataFilesRepo: ppidDataFilesRepo,
UsersRepo: usersRepo, UsersRepo: usersRepo,
UserLevelsRepo: userLevelsRepo, UserLevelsRepo: userLevelsRepo,
Log: log, userRoleLevelDetailsRepo: userRoleLevelDetailsRepo,
Log: log,
} }
} }
@ -111,6 +120,59 @@ 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) UpdateApprovalStatus(req requestPpidApproval.PpidDataApprovalHistoriesCreateRequest, authToken string) (err error) {
ppidData, err := _i.Repo.FindOne(req.PpidDataId)
if err != nil {
return err
}
if req.ApprovalStatusId == 1 {
ppidData.NeedApprovalFromUserRole = nil
ppidData.NeedApprovalFromUserLevel = nil
ppidData.BackApprovalToUserRole = nil
ppidData.BackApprovalToUserLevel = nil
}
approvalBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
if approvalBy != nil {
findUserLevel, _ := _i.UserLevelsRepo.FindOne(uint(approvalBy.UserLevelId))
findUserParentLevel, _ := _i.UserLevelsRepo.FindOne(uint(findUserLevel.ParentLevelId))
if findUserLevel != nil {
if findUserLevel.LevelNumber == 1 {
isPublish := true
publishLevel := 1
timeNow := time.Now()
ppidData.IsPublish = &isPublish
ppidData.PublishLevel = &publishLevel
ppidData.PublishedAt = &timeNow
ppidData.NeedApprovalFromUserRole = nil
ppidData.NeedApprovalFromUserLevel = nil
} else if findUserLevel.LevelNumber == 2 {
isPublish := true
publishLevel := 2
timeNow := time.Now()
ppidData.IsPublish = &isPublish
ppidData.PublishLevel = &publishLevel
ppidData.PublishedAt = &timeNow
needApprovalFromUserLevel := fmt.Sprintf("%s", findUserParentLevel.ID)
ppidData.NeedApprovalFromUserLevel = &needApprovalFromUserLevel
findUserRoles, _ := _i.userRoleLevelDetailsRepo.FindByUserLevels(findUserParentLevel.ID)
var needApprovalFromUserRole []string
for _, role := range findUserRoles {
roleId := fmt.Sprintf("%s", role.UserRoleId)
needApprovalFromUserRole = append(needApprovalFromUserRole, roleId)
}
needApprovalFromUserRoleStr := strings.Join(needApprovalFromUserRole, "/")
ppidData.NeedApprovalFromUserRole = &needApprovalFromUserRoleStr
}
}
}
return _i.Repo.Update(req.PpidDataId, ppidData)
}
func (_i *ppidDatasService) Delete(id uint) error { func (_i *ppidDatasService) Delete(id uint) error {
result, err := _i.Repo.FindOne(id) result, err := _i.Repo.FindOne(id)
if err != nil { if err != nil {

View File

@ -15,6 +15,7 @@ type userRoleLevelDetailsRepository struct {
type UserRoleLevelDetailsRepository interface { type UserRoleLevelDetailsRepository interface {
GetAll(req request.UserRoleLevelDetailsQueryRequest) (userRoleLevelDetailss []*entity.UserRoleLevelDetails, paging paginator.Pagination, err error) GetAll(req request.UserRoleLevelDetailsQueryRequest) (userRoleLevelDetailss []*entity.UserRoleLevelDetails, paging paginator.Pagination, err error)
FindOne(id uint) (userRoleLevelDetails *entity.UserRoleLevelDetails, err error) FindOne(id uint) (userRoleLevelDetails *entity.UserRoleLevelDetails, err error)
FindByUserLevels(userLevelId uint) (userRoleLevelDetails []*entity.UserRoleLevelDetails, err error)
Create(userRoleLevelDetails *entity.UserRoleLevelDetails) (err error) Create(userRoleLevelDetails *entity.UserRoleLevelDetails) (err error)
Update(id uint, userRoleLevelDetails *entity.UserRoleLevelDetails) (err error) Update(id uint, userRoleLevelDetails *entity.UserRoleLevelDetails) (err error)
Delete(id uint) (err error) Delete(id uint) (err error)
@ -54,6 +55,15 @@ func (_i *userRoleLevelDetailsRepository) FindOne(id uint) (userRoleLevelDetails
return userRoleLevelDetails, nil return userRoleLevelDetails, nil
} }
func (_i *userRoleLevelDetailsRepository) FindByUserLevels(userLevelId uint) (userRoleLevelDetails []*entity.UserRoleLevelDetails, err error) {
if err := _i.DB.DB.Find(&userRoleLevelDetails).
Where(&entity.UserRoleLevelDetails{UserLevelId: userLevelId}).Error; err != nil {
return nil, err
}
return userRoleLevelDetails, nil
}
func (_i *userRoleLevelDetailsRepository) Create(userRoleLevelDetails *entity.UserRoleLevelDetails) (err error) { func (_i *userRoleLevelDetailsRepository) Create(userRoleLevelDetails *entity.UserRoleLevelDetails) (err error) {
return _i.DB.DB.Create(userRoleLevelDetails).Error return _i.DB.DB.Create(userRoleLevelDetails).Error
} }

View File

@ -3375,6 +3375,251 @@ const docTemplate = `{
} }
} }
}, },
"/ppid-data-approval-histories": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "API for getting all PpidDataApprovalHistories",
"tags": [
"Task"
],
"summary": "Get all PpidDataApprovalHistories",
"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"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
}
],
"description": "API for create PpidDataApprovalHistories",
"tags": [
"Task"
],
"summary": "Create PpidDataApprovalHistories",
"parameters": [
{
"type": "string",
"default": "Bearer \u003cAdd access token here\u003e",
"description": "Insert your access token",
"name": "Authorization",
"in": "header",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Response"
}
}
}
}
},
"/ppid-data-approval-histories/:id": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "API for getting one PpidDataApprovalHistories",
"tags": [
"Task"
],
"summary": "Get one PpidDataApprovalHistories",
"parameters": [
{
"type": "integer",
"description": "PpidDataApprovalHistories ID",
"name": "id",
"in": "path",
"required": true
}
],
"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"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
}
],
"description": "API for delete PpidDataApprovalHistories",
"tags": [
"Task"
],
"summary": "delete PpidDataApprovalHistories",
"parameters": [
{
"type": "integer",
"description": "PpidDataApprovalHistories ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Response"
}
}
}
}
},
"/ppid-data-approval-histories/ppid-data/:ppidDataId": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "API for getting one PpidDataApprovalHistories",
"tags": [
"Task"
],
"summary": "Get one PpidDataApprovalHistories",
"parameters": [
{
"type": "integer",
"description": "PpidData ID",
"name": "ppidDataId",
"in": "path",
"required": true
}
],
"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": { "/ppid-data-categories": {
"get": { "get": {
"security": [ "security": [
@ -6689,9 +6934,6 @@ const docTemplate = `{
"categoryId": { "categoryId": {
"type": "integer" "type": "integer"
}, },
"createdById": {
"type": "integer"
},
"description": { "description": {
"type": "string" "type": "string"
}, },

View File

@ -3364,6 +3364,251 @@
} }
} }
}, },
"/ppid-data-approval-histories": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "API for getting all PpidDataApprovalHistories",
"tags": [
"Task"
],
"summary": "Get all PpidDataApprovalHistories",
"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"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
}
],
"description": "API for create PpidDataApprovalHistories",
"tags": [
"Task"
],
"summary": "Create PpidDataApprovalHistories",
"parameters": [
{
"type": "string",
"default": "Bearer \u003cAdd access token here\u003e",
"description": "Insert your access token",
"name": "Authorization",
"in": "header",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Response"
}
}
}
}
},
"/ppid-data-approval-histories/:id": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "API for getting one PpidDataApprovalHistories",
"tags": [
"Task"
],
"summary": "Get one PpidDataApprovalHistories",
"parameters": [
{
"type": "integer",
"description": "PpidDataApprovalHistories ID",
"name": "id",
"in": "path",
"required": true
}
],
"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"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
}
],
"description": "API for delete PpidDataApprovalHistories",
"tags": [
"Task"
],
"summary": "delete PpidDataApprovalHistories",
"parameters": [
{
"type": "integer",
"description": "PpidDataApprovalHistories ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"$ref": "#/definitions/response.Response"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/response.Response"
}
}
}
}
},
"/ppid-data-approval-histories/ppid-data/:ppidDataId": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "API for getting one PpidDataApprovalHistories",
"tags": [
"Task"
],
"summary": "Get one PpidDataApprovalHistories",
"parameters": [
{
"type": "integer",
"description": "PpidData ID",
"name": "ppidDataId",
"in": "path",
"required": true
}
],
"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": { "/ppid-data-categories": {
"get": { "get": {
"security": [ "security": [
@ -6678,9 +6923,6 @@
"categoryId": { "categoryId": {
"type": "integer" "type": "integer"
}, },
"createdById": {
"type": "integer"
},
"description": { "description": {
"type": "string" "type": "string"
}, },

View File

@ -299,8 +299,6 @@ definitions:
properties: properties:
categoryId: categoryId:
type: integer type: integer
createdById:
type: integer
description: description:
type: string type: string
group: group:
@ -2749,6 +2747,162 @@ paths:
summary: Update MasterStatuses summary: Update MasterStatuses
tags: tags:
- Untags - Untags
/ppid-data-approval-histories:
get:
description: API for getting all PpidDataApprovalHistories
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: Get all PpidDataApprovalHistories
tags:
- Task
post:
description: API for create PpidDataApprovalHistories
parameters:
- default: Bearer <Add access token here>
description: Insert your access token
in: header
name: Authorization
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/response.Response'
"404":
description: Not Found
schema:
$ref: '#/definitions/response.Response'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/response.Response'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/response.Response'
security:
- Bearer: []
summary: Create PpidDataApprovalHistories
tags:
- Task
/ppid-data-approval-histories/:id:
delete:
description: API for delete PpidDataApprovalHistories
parameters:
- description: PpidDataApprovalHistories ID
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/response.Response'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/response.Response'
"404":
description: Not Found
schema:
$ref: '#/definitions/response.Response'
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/response.Response'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/response.Response'
security:
- Bearer: []
summary: delete PpidDataApprovalHistories
tags:
- Task
get:
description: API for getting one PpidDataApprovalHistories
parameters:
- description: PpidDataApprovalHistories ID
in: path
name: id
required: true
type: integer
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: Get one PpidDataApprovalHistories
tags:
- Task
/ppid-data-approval-histories/ppid-data/:ppidDataId:
get:
description: API for getting one PpidDataApprovalHistories
parameters:
- description: PpidData ID
in: path
name: ppidDataId
required: true
type: integer
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: Get one PpidDataApprovalHistories
tags:
- Task
/ppid-data-categories: /ppid-data-categories:
get: get:
description: API for getting all PpidDataCategories description: API for getting all PpidDataCategories

View File

@ -14,6 +14,7 @@ import (
"go-humas-be/app/module/magazines" "go-humas-be/app/module/magazines"
"go-humas-be/app/module/master_menus" "go-humas-be/app/module/master_menus"
"go-humas-be/app/module/master_modules" "go-humas-be/app/module/master_modules"
"go-humas-be/app/module/ppid_data_approval_histories"
"go-humas-be/app/module/ppid_data_categories" "go-humas-be/app/module/ppid_data_categories"
"go-humas-be/app/module/ppid_data_files" "go-humas-be/app/module/ppid_data_files"
"go-humas-be/app/module/ppid_datas" "go-humas-be/app/module/ppid_datas"
@ -64,6 +65,7 @@ func main() {
master_modules.NewMasterModulesModule, master_modules.NewMasterModulesModule,
ppid_data_files.NewPpidDataFilesModule, ppid_data_files.NewPpidDataFilesModule,
ppid_data_categories.NewPpidDataCategoriesModule, ppid_data_categories.NewPpidDataCategoriesModule,
ppid_data_approval_histories.NewPpidDataApprovalHistoriesModule,
ppid_datas.NewPpidDatasModule, ppid_datas.NewPpidDatasModule,
provinces.NewProvincesModule, provinces.NewProvincesModule,
user_levels.NewUserLevelsModule, user_levels.NewUserLevelsModule,