diff --git a/app/database/entity/ppid_data_approval_histories.entity.go b/app/database/entity/ppid_data_approval_histories.entity.go index f56edcd..93751b2 100644 --- a/app/database/entity/ppid_data_approval_histories.entity.go +++ b/app/database/entity/ppid_data_approval_histories.entity.go @@ -6,10 +6,10 @@ type PpidDataApprovalHistories struct { ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` Message string `json:"message" gorm:"type:varchar"` ApprovalStatusId int `json:"approval_status_id" gorm:"type:int4"` - PpidDataId int `json:"ppid_data_id" gorm:"type:int4"` - ApprovalBy int `json:"approval_by" gorm:"type:int4"` + PpidDataId uint `json:"ppid_data_id" gorm:"type:int4"` + ApprovalBy uint `json:"approval_by" 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()"` UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` } diff --git a/app/database/entity/ppid_datas.entity.go b/app/database/entity/ppid_datas.entity.go index ea77cd8..8259bdb 100644 --- a/app/database/entity/ppid_datas.entity.go +++ b/app/database/entity/ppid_datas.entity.go @@ -3,21 +3,24 @@ package entity import "time" type PpidDatas struct { - ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` - Title string `json:"title" gorm:"type:varchar"` - Description string `json:"description" gorm:"type:varchar"` - Slug string `json:"slug" gorm:"type:varchar"` - CategoryId uint `json:"category_id" gorm:"type:int4"` - CreatedById *uint `json:"created_by_id" gorm:"type:int4"` - LevelGroupId *int `json:"level_group_id" gorm:"type:int4"` - Group *string `json:"group" gorm:"type:varchar"` - StatusId int `json:"status_id" gorm:"type:int4"` - NeedApprovalFrom *int `json:"need_approval_from" gorm:"type:int4"` - BackApprovalTo *int `json:"back_approval_to" gorm:"type:int4"` - IsPublish *bool `json:"is_publish" gorm:"type:bool;default:false"` - PublishLevel *int `json:"publish_level" gorm:"type:int4"` - PublishedAt *time.Time `json:"published_at" gorm:"type:timestamp"` - 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()"` + ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"` + Title string `json:"title" gorm:"type:varchar"` + Description string `json:"description" gorm:"type:varchar"` + Slug string `json:"slug" gorm:"type:varchar"` + CategoryId uint `json:"category_id" gorm:"type:int4"` + CreatedById *uint `json:"created_by_id" gorm:"type:int4"` + LevelGroupId *int `json:"level_group_id" gorm:"type:int4"` + Group *string `json:"group" 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"` + BackApprovalToUserRole *int `json:"back_approval_to_user_role" gorm:"type:varchar"` + BackApprovalToUserLevel *int `json:"back_approval_to_user_level" gorm:"type:varchar"` + IsPublish *bool `json:"is_publish" gorm:"type:bool;default:false"` + PublishLevel *int `json:"publish_level" gorm:"type:int4"` + PublishedAt *time.Time `json:"published_at" gorm:"type:timestamp"` + ApprovalStatusId int `json:"approval_status_id" gorm:"type:int4"` + 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()"` } diff --git a/app/database/index.database.go b/app/database/index.database.go index 33a38f2..70f2210 100644 --- a/app/database/index.database.go +++ b/app/database/index.database.go @@ -78,8 +78,10 @@ func Models() []interface{} { entity.MasterMenus{}, entity.MasterModules{}, entity.MasterStatuses{}, + entity.MasterApprovalStatuses{}, entity.PpidDatas{}, entity.PpidDataFiles{}, + entity.PpidDataApprovalHistories{}, entity.PpidDataCategories{}, entity.Provinces{}, entity.UserLevels{}, diff --git a/app/module/ppid_data_approval_histories/controller/ppid_data_approval_histories.controller.go b/app/module/ppid_data_approval_histories/controller/ppid_data_approval_histories.controller.go index 3488405..3f9c482 100644 --- a/app/module/ppid_data_approval_histories/controller/ppid_data_approval_histories.controller.go +++ b/app/module/ppid_data_approval_histories/controller/ppid_data_approval_histories.controller.go @@ -4,7 +4,6 @@ import ( "github.com/gofiber/fiber/v2" "go-humas-be/app/module/ppid_data_approval_histories/request" "go-humas-be/app/module/ppid_data_approval_histories/service" - "go-humas-be/utils/paginator" "strconv" utilRes "go-humas-be/utils/response" @@ -18,8 +17,8 @@ type ppidDataApprovalHistoriesController struct { type PpidDataApprovalHistoriesController interface { All(c *fiber.Ctx) error Show(c *fiber.Ctx) error + ShowByPpidData(c *fiber.Ctx) error Save(c *fiber.Ctx) error - Update(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 // @Description API for getting all PpidDataApprovalHistories // @Tags Task // @Security Bearer // @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 +// @Failure 400 {object} response.BadRequestError +// @Failure 401 {object} response.UnauthorizedError +// @Failure 500 {object} response.InternalServerError // @Router /ppid-data-approval-histories [get] func (_i *ppidDataApprovalHistoriesController) All(c *fiber.Ctx) error { - paginate, err := paginator.Paginate(c) - if err != nil { - return err - } - - var req request.PpidDataApprovalHistoriesQueryRequest - req.Pagination = paginate - - ppidDataApprovalHistoriesData, paging, err := _i.ppidDataApprovalHistoriesService.All(req) + ppidDataApprovalHistoriesData, err := _i.ppidDataApprovalHistoriesService.All() if err != nil { return err } return utilRes.Resp(c, utilRes.Response{ + Success: true, Messages: utilRes.Messages{"PpidDataApprovalHistories list successfully retrieved"}, Data: ppidDataApprovalHistoriesData, - Meta: paging, }) } -// Show get one PpidDataApprovalHistories +// Show PpidDataApprovalHistories // @Summary Get one PpidDataApprovalHistories // @Description API for getting one PpidDataApprovalHistories // @Tags Task // @Security Bearer // @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 +// @Failure 400 {object} response.BadRequestError +// @Failure 401 {object} response.UnauthorizedError +// @Failure 500 {object} response.InternalServerError // @Router /ppid-data-approval-histories/:id [get] func (_i *ppidDataApprovalHistoriesController) Show(c *fiber.Ctx) error { 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{ + 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"}, Data: ppidDataApprovalHistoriesData, }) @@ -95,6 +114,7 @@ func (_i *ppidDataApprovalHistoriesController) Show(c *fiber.Ctx) error { // @Description API for create PpidDataApprovalHistories // @Tags Task // @Security Bearer +// @Param Authorization header string true "Insert your access token" default(Bearer ) // @Body request.PpidDataApprovalHistoriesCreateRequest // @Success 200 {object} response.Response // @Failure 401 {object} response.Response @@ -108,7 +128,9 @@ func (_i *ppidDataApprovalHistoriesController) Save(c *fiber.Ctx) error { return err } - err := _i.ppidDataApprovalHistoriesService.Save(*req) + authToken := c.Get("Authorization") + + err := _i.ppidDataApprovalHistoriesService.Save(*req, authToken) if err != nil { 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 // @Summary delete PpidDataApprovalHistories // @Description API for delete PpidDataApprovalHistories diff --git a/app/module/ppid_data_approval_histories/mapper/ppid_data_approval_histories.mapper.go b/app/module/ppid_data_approval_histories/mapper/ppid_data_approval_histories.mapper.go index 8f5b8df..07c02a0 100644 --- a/app/module/ppid_data_approval_histories/mapper/ppid_data_approval_histories.mapper.go +++ b/app/module/ppid_data_approval_histories/mapper/ppid_data_approval_histories.mapper.go @@ -3,16 +3,25 @@ package mapper import ( "go-humas-be/app/database/entity" 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 { + findUser, _ := usersRepo.FindOne(ppidDataApprovalHistoriesReq.ApprovalBy) + createdByName := "" + if findUser != nil { + createdByName = findUser.Fullname + } + ppidDataApprovalHistoriesRes = &res.PpidDataApprovalHistoriesResponse{ ID: ppidDataApprovalHistoriesReq.ID, Message: ppidDataApprovalHistoriesReq.Message, ApprovalStatusId: ppidDataApprovalHistoriesReq.ApprovalStatusId, PpidDataId: ppidDataApprovalHistoriesReq.PpidDataId, - ApprovalBy: ppidDataApprovalHistoriesReq.ApprovalBy, + ApprovalById: ppidDataApprovalHistoriesReq.ApprovalBy, + ApprovalByName: createdByName, ApprovalAtLevel: ppidDataApprovalHistoriesReq.ApprovalAtLevel, IsActive: ppidDataApprovalHistoriesReq.IsActive, CreatedAt: ppidDataApprovalHistoriesReq.CreatedAt, diff --git a/app/module/ppid_data_approval_histories/ppid_data_approval_histories.module.go b/app/module/ppid_data_approval_histories/ppid_data_approval_histories.module.go index a015f84..ce3e916 100644 --- a/app/module/ppid_data_approval_histories/ppid_data_approval_histories.module.go +++ b/app/module/ppid_data_approval_histories/ppid_data_approval_histories.module.go @@ -46,8 +46,8 @@ func (_i *PpidDataApprovalHistoriesRouter) RegisterPpidDataApprovalHistoriesRout _i.App.Route("/ppid-data-approval-histories", func(router fiber.Router) { router.Get("/", ppidDataApprovalHistoriesController.All) router.Get("/:id", ppidDataApprovalHistoriesController.Show) + router.Get("/ppid-data/:ppidDataId", ppidDataApprovalHistoriesController.ShowByPpidData) router.Post("/", ppidDataApprovalHistoriesController.Save) - router.Put("/:id", ppidDataApprovalHistoriesController.Update) router.Delete("/:id", ppidDataApprovalHistoriesController.Delete) }) } diff --git a/app/module/ppid_data_approval_histories/repository/ppid_data_approval_histories.repository.go b/app/module/ppid_data_approval_histories/repository/ppid_data_approval_histories.repository.go index b31b885..863d4da 100644 --- a/app/module/ppid_data_approval_histories/repository/ppid_data_approval_histories.repository.go +++ b/app/module/ppid_data_approval_histories/repository/ppid_data_approval_histories.repository.go @@ -3,8 +3,6 @@ package repository import ( "go-humas-be/app/database" "go-humas-be/app/database/entity" - "go-humas-be/app/module/ppid_data_approval_histories/request" - "go-humas-be/utils/paginator" ) type ppidDataApprovalHistoriesRepository struct { @@ -13,8 +11,9 @@ type ppidDataApprovalHistoriesRepository struct { // PpidDataApprovalHistoriesRepository define interface of IPpidDataApprovalHistoriesRepository 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) + FindByPpidData(ppidDataId uint) (ppidDataApprovalHistories []*entity.PpidDataApprovalHistories, err error) Create(ppidDataApprovalHistories *entity.PpidDataApprovalHistories) (err error) Update(id uint, ppidDataApprovalHistories *entity.PpidDataApprovalHistories) (err error) Delete(id uint) (err error) @@ -27,23 +26,13 @@ func NewPpidDataApprovalHistoriesRepository(db *database.Database) PpidDataAppro } // implement interface of IPpidDataApprovalHistoriesRepository -func (_i *ppidDataApprovalHistoriesRepository) GetAll(req request.PpidDataApprovalHistoriesQueryRequest) (ppidDataApprovalHistoriess []*entity.PpidDataApprovalHistories, paging paginator.Pagination, err error) { - var count int64 - - query := _i.DB.DB.Model(&entity.PpidDataApprovalHistories{}) - 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 +func (_i *ppidDataApprovalHistoriesRepository) GetAll() (ppidDataApprovalHistories []*entity.PpidDataApprovalHistories, err error) { + if err := _i.DB.DB.Find(&ppidDataApprovalHistories). + Where(&entity.PpidDataApprovalHistories{IsActive: true}).Error; err != nil { + return nil, err } - paging = *req.Pagination - - return + return ppidDataApprovalHistories, nil } 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 } +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) { return _i.DB.DB.Create(ppidDataApprovalHistories).Error } diff --git a/app/module/ppid_data_approval_histories/request/ppid_data_approval_histories.request.go b/app/module/ppid_data_approval_histories/request/ppid_data_approval_histories.request.go index 78f96e6..9c3c0fa 100644 --- a/app/module/ppid_data_approval_histories/request/ppid_data_approval_histories.request.go +++ b/app/module/ppid_data_approval_histories/request/ppid_data_approval_histories.request.go @@ -2,66 +2,24 @@ package request import ( "go-humas-be/app/database/entity" - "go-humas-be/utils/paginator" - "time" ) type PpidDataApprovalHistoriesGeneric interface { 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 { + PpidDataId uint `json:"ppidDataId" 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"` + ApprovalStatusId int `json:"approvalStatusId" validate:"required"` + ApprovalAtLevel int `json:"approvalAtLevel" validate:"required"` } func (req PpidDataApprovalHistoriesCreateRequest) ToEntity() *entity.PpidDataApprovalHistories { return &entity.PpidDataApprovalHistories{ + PpidDataId: req.PpidDataId, Message: req.Message, ApprovalStatusId: req.ApprovalStatusId, - PpidDataId: req.PpidDataId, - ApprovalBy: req.ApprovalBy, 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, } } diff --git a/app/module/ppid_data_approval_histories/response/ppid_data_approval_histories.response.go b/app/module/ppid_data_approval_histories/response/ppid_data_approval_histories.response.go index b7bbb58..8d444b4 100644 --- a/app/module/ppid_data_approval_histories/response/ppid_data_approval_histories.response.go +++ b/app/module/ppid_data_approval_histories/response/ppid_data_approval_histories.response.go @@ -6,8 +6,9 @@ type PpidDataApprovalHistoriesResponse struct { ID uint `json:"id"` Message string `json:"message"` ApprovalStatusId int `json:"approval_status_id"` - PpidDataId int `json:"ppid_data_id"` - ApprovalBy int `json:"approval_by"` + PpidDataId uint `json:"ppid_data_id"` + ApprovalById uint `json:"approval_by_id"` + ApprovalByName string `json:"approval_by_name"` ApprovalAtLevel int `json:"approval_at_level"` IsActive bool `json:"is_active"` CreatedAt time.Time `json:"created_at"` diff --git a/app/module/ppid_data_approval_histories/service/ppid_data_approval_histories.service.go b/app/module/ppid_data_approval_histories/service/ppid_data_approval_histories.service.go index 343308c..573a9df 100644 --- a/app/module/ppid_data_approval_histories/service/ppid_data_approval_histories.service.go +++ b/app/module/ppid_data_approval_histories/service/ppid_data_approval_histories.service.go @@ -6,42 +6,45 @@ import ( "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/response" - "go-humas-be/utils/paginator" + usersRepository "go-humas-be/app/module/users/repository" + utilSvc "go-humas-be/utils/service" ) // PpidDataApprovalHistoriesService type ppidDataApprovalHistoriesService struct { - Repo repository.PpidDataApprovalHistoriesRepository - Log zerolog.Logger + Repo repository.PpidDataApprovalHistoriesRepository + UsersRepo usersRepository.UsersRepository + Log zerolog.Logger } // PpidDataApprovalHistoriesService define interface of IPpidDataApprovalHistoriesService 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) - Save(req request.PpidDataApprovalHistoriesCreateRequest) (err error) - Update(id uint, req request.PpidDataApprovalHistoriesUpdateRequest) (err error) + ShowByPpidData(ppidDataId uint) (ppidDataApprovalHistories []*response.PpidDataApprovalHistoriesResponse, err error) + Save(req request.PpidDataApprovalHistoriesCreateRequest, authToken string) (err error) Delete(id uint) error } // 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{ - Repo: repo, - Log: log, + Repo: repo, + UsersRepo: usersRepo, + Log: log, } } // All implement interface of PpidDataApprovalHistoriesService -func (_i *ppidDataApprovalHistoriesService) All(req request.PpidDataApprovalHistoriesQueryRequest) (ppidDataApprovalHistoriess []*response.PpidDataApprovalHistoriesResponse, paging paginator.Pagination, err error) { - results, paging, err := _i.Repo.GetAll(req) +func (_i *ppidDataApprovalHistoriesService) All() (ppidDataApprovalHistories []*response.PpidDataApprovalHistoriesResponse, err error) { + results, err := _i.Repo.GetAll() if err != nil { return } for _, result := range results { - ppidDataApprovalHistoriess = append(ppidDataApprovalHistoriess, mapper.PpidDataApprovalHistoriesResponseMapper(result)) + ppidDataApprovalHistories = append(ppidDataApprovalHistories, mapper.PpidDataApprovalHistoriesResponseMapper(result, _i.UsersRepo)) } return @@ -53,18 +56,30 @@ func (_i *ppidDataApprovalHistoriesService) Show(id uint) (ppidDataApprovalHisto return nil, err } - return mapper.PpidDataApprovalHistoriesResponseMapper(result), nil + return mapper.PpidDataApprovalHistoriesResponseMapper(result, _i.UsersRepo), nil } -func (_i *ppidDataApprovalHistoriesService) Save(req request.PpidDataApprovalHistoriesCreateRequest) (err error) { - _i.Log.Info().Interface("data", req).Msg("") +func (_i *ppidDataApprovalHistoriesService) ShowByPpidData(ppidDataId uint) (ppidDataApprovalHistories []*response.PpidDataApprovalHistoriesResponse, err error) { + 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("") - 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 { diff --git a/app/module/ppid_datas/controller/ppid_datas.controller.go b/app/module/ppid_datas/controller/ppid_datas.controller.go index 31e7198..0c28516 100644 --- a/app/module/ppid_datas/controller/ppid_datas.controller.go +++ b/app/module/ppid_datas/controller/ppid_datas.controller.go @@ -7,6 +7,7 @@ import ( "go-humas-be/utils/paginator" "strconv" + requestPpidApproval "go-humas-be/app/module/ppid_data_approval_histories/request" utilRes "go-humas-be/utils/response" utilVal "go-humas-be/utils/validator" ) @@ -20,6 +21,7 @@ type PpidDatasController interface { Show(c *fiber.Ctx) error Save(c *fiber.Ctx) error Update(c *fiber.Ctx) error + UpdateApprovalStatus(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 // @Summary delete PpidDatas // @Description API for delete PpidDatas diff --git a/app/module/ppid_datas/ppid_datas.module.go b/app/module/ppid_datas/ppid_datas.module.go index ebe3046..9b777fa 100644 --- a/app/module/ppid_datas/ppid_datas.module.go +++ b/app/module/ppid_datas/ppid_datas.module.go @@ -48,6 +48,7 @@ func (_i *PpidDatasRouter) RegisterPpidDatasRoutes() { router.Get("/:id", ppidDatasController.Show) router.Post("/", ppidDatasController.Save) router.Put("/:id", ppidDatasController.Update) + router.Put("/approval", ppidDatasController.UpdateApprovalStatus) router.Delete("/:id", ppidDatasController.Delete) }) } diff --git a/app/module/ppid_datas/request/ppid_datas.request.go b/app/module/ppid_datas/request/ppid_datas.request.go index b4b3102..fcf94a9 100644 --- a/app/module/ppid_datas/request/ppid_datas.request.go +++ b/app/module/ppid_datas/request/ppid_datas.request.go @@ -29,7 +29,6 @@ type PpidDatasCreateRequest struct { Slug string `json:"slug" validate:"required"` CategoryId uint `json:"categoryId" validate:"required"` StatusId int `json:"statusId" validate:"required"` - CreatedById *uint `json:"createdById"` LevelGroupId *int `json:"levelGroupId"` Group *string `json:"group"` } @@ -40,7 +39,6 @@ func (req PpidDatasCreateRequest) ToEntity() *entity.PpidDatas { Description: req.Description, Slug: req.Slug, CategoryId: req.CategoryId, - CreatedById: req.CreatedById, StatusId: req.StatusId, LevelGroupId: req.LevelGroupId, Group: req.Group, @@ -48,33 +46,40 @@ func (req PpidDatasCreateRequest) ToEntity() *entity.PpidDatas { } type PpidDatasUpdateRequest struct { - ID uint `json:"id" validate:"required"` - Title string `json:"title" validate:"required"` - Description string `json:"description" validate:"required"` - Slug string `json:"slug" validate:"required"` - CategoryId uint `json:"category_id" validate:"required"` - StatusId int `json:"status_id" validate:"required"` - CreatedById *uint `json:"created_by_id"` - IsPublish *bool `json:"is_publish"` - PublishedAt *time.Time `json:"published_at"` - LevelGroupId *int `json:"levelGroupId"` - Group *string `json:"group"` + ID uint `json:"id" validate:"required"` + Title string `json:"title" validate:"required"` + Description string `json:"description" validate:"required"` + Slug string `json:"slug" validate:"required"` + CategoryId uint `json:"categoryId" validate:"required"` + StatusId int `json:"statusId" validate:"required"` + NeedApprovalFromUserRole *string `json:"needApprovalFrom"` + NeedApprovalFromUserLevel *string `json:"needApprovalFromUserLevel"` + BackApprovalToUserRole *int `json:"backApprovalToUserRole"` + BackApprovalToUserLevel *int `json:"backApprovalToUserLevel"` + 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 { return &entity.PpidDatas{ - ID: req.ID, - Title: req.Title, - Description: req.Description, - Slug: req.Slug, - CategoryId: req.CategoryId, - CreatedById: req.CreatedById, - StatusId: req.StatusId, - IsPublish: req.IsPublish, - PublishedAt: req.PublishedAt, - LevelGroupId: req.LevelGroupId, - Group: req.Group, - UpdatedAt: time.Now(), + ID: req.ID, + Title: req.Title, + Description: req.Description, + Slug: req.Slug, + CategoryId: req.CategoryId, + StatusId: req.StatusId, + NeedApprovalFromUserRole: req.NeedApprovalFromUserRole, + NeedApprovalFromUserLevel: req.NeedApprovalFromUserLevel, + BackApprovalToUserRole: req.BackApprovalToUserRole, + BackApprovalToUserLevel: req.BackApprovalToUserLevel, + IsPublish: req.IsPublish, + PublishedAt: req.PublishedAt, + LevelGroupId: req.LevelGroupId, + Group: req.Group, + UpdatedAt: time.Now(), } } diff --git a/app/module/ppid_datas/service/ppid_datas.service.go b/app/module/ppid_datas/service/ppid_datas.service.go index 927d5c7..f08bcea 100644 --- a/app/module/ppid_datas/service/ppid_datas.service.go +++ b/app/module/ppid_datas/service/ppid_datas.service.go @@ -1,8 +1,10 @@ package service import ( + "fmt" "github.com/rs/zerolog" "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" ppidDataFilesRepository "go-humas-be/app/module/ppid_data_files/repository" "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/response" 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" "go-humas-be/utils/paginator" utilSvc "go-humas-be/utils/service" "strconv" + "strings" + "time" ) // PpidDatasService type ppidDatasService struct { - Repo repository.PpidDatasRepository - PpidDataCategoriesRepo ppidDataCategoriesRepository.PpidDataCategoriesRepository - PpidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository - UsersRepo usersRepository.UsersRepository - UserLevelsRepo userLevelsRepository.UserLevelsRepository - Log zerolog.Logger + Repo repository.PpidDatasRepository + PpidDataCategoriesRepo ppidDataCategoriesRepository.PpidDataCategoriesRepository + PpidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository + UsersRepo usersRepository.UsersRepository + UserLevelsRepo userLevelsRepository.UserLevelsRepository + userRoleLevelDetailsRepo userRoleLevelDetailsRepository.UserRoleLevelDetailsRepository + Log zerolog.Logger } // PpidDatasService define interface of IPpidDatasService @@ -32,6 +38,7 @@ type PpidDatasService interface { Show(id string) (ppidDatas *response.PpidDatasResponse, err error) Save(req request.PpidDatasCreateRequest, authToken string) (ppidDatas *entity.PpidDatas, err error) Update(id uint, req request.PpidDatasUpdateRequest) (err error) + UpdateApprovalStatus(req requestPpidApproval.PpidDataApprovalHistoriesCreateRequest, authToken string) (err error) Delete(id uint) error } @@ -42,16 +49,18 @@ func NewPpidDatasService( ppidDataFilesRepo ppidDataFilesRepository.PpidDataFilesRepository, usersRepo usersRepository.UsersRepository, userLevelsRepo userLevelsRepository.UserLevelsRepository, + userRoleLevelDetailsRepo userRoleLevelDetailsRepository.UserRoleLevelDetailsRepository, log zerolog.Logger, ) PpidDatasService { return &ppidDatasService{ - Repo: repo, - PpidDataCategoriesRepo: ppidDataCategoriesRepo, - PpidDataFilesRepo: ppidDataFilesRepo, - UsersRepo: usersRepo, - UserLevelsRepo: userLevelsRepo, - Log: log, + Repo: repo, + PpidDataCategoriesRepo: ppidDataCategoriesRepo, + PpidDataFilesRepo: ppidDataFilesRepo, + UsersRepo: usersRepo, + UserLevelsRepo: userLevelsRepo, + userRoleLevelDetailsRepo: userRoleLevelDetailsRepo, + Log: log, } } @@ -111,6 +120,59 @@ func (_i *ppidDatasService) Update(id uint, req request.PpidDatasUpdateRequest) 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 { result, err := _i.Repo.FindOne(id) if err != nil { diff --git a/app/module/user_role_level_details/repository/user_role_level_details.repository.go b/app/module/user_role_level_details/repository/user_role_level_details.repository.go index 7113642..077111f 100644 --- a/app/module/user_role_level_details/repository/user_role_level_details.repository.go +++ b/app/module/user_role_level_details/repository/user_role_level_details.repository.go @@ -15,6 +15,7 @@ type userRoleLevelDetailsRepository struct { type UserRoleLevelDetailsRepository interface { GetAll(req request.UserRoleLevelDetailsQueryRequest) (userRoleLevelDetailss []*entity.UserRoleLevelDetails, paging paginator.Pagination, err error) FindOne(id uint) (userRoleLevelDetails *entity.UserRoleLevelDetails, err error) + FindByUserLevels(userLevelId uint) (userRoleLevelDetails []*entity.UserRoleLevelDetails, err error) Create(userRoleLevelDetails *entity.UserRoleLevelDetails) (err error) Update(id uint, userRoleLevelDetails *entity.UserRoleLevelDetails) (err error) Delete(id uint) (err error) @@ -54,6 +55,15 @@ func (_i *userRoleLevelDetailsRepository) FindOne(id uint) (userRoleLevelDetails 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) { return _i.DB.DB.Create(userRoleLevelDetails).Error } diff --git a/docs/swagger/docs.go b/docs/swagger/docs.go index bef8f09..7d79110 100644 --- a/docs/swagger/docs.go +++ b/docs/swagger/docs.go @@ -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": { "get": { "security": [ @@ -6689,9 +6934,6 @@ const docTemplate = `{ "categoryId": { "type": "integer" }, - "createdById": { - "type": "integer" - }, "description": { "type": "string" }, diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index f2b7da2..f32f87c 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -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": { "get": { "security": [ @@ -6678,9 +6923,6 @@ "categoryId": { "type": "integer" }, - "createdById": { - "type": "integer" - }, "description": { "type": "string" }, diff --git a/docs/swagger/swagger.yaml b/docs/swagger/swagger.yaml index 65dd892..730062d 100644 --- a/docs/swagger/swagger.yaml +++ b/docs/swagger/swagger.yaml @@ -299,8 +299,6 @@ definitions: properties: categoryId: type: integer - createdById: - type: integer description: type: string group: @@ -2749,6 +2747,162 @@ paths: summary: Update MasterStatuses tags: - 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 + 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: get: description: API for getting all PpidDataCategories diff --git a/main.go b/main.go index 44c24d2..e88c78f 100644 --- a/main.go +++ b/main.go @@ -14,6 +14,7 @@ import ( "go-humas-be/app/module/magazines" "go-humas-be/app/module/master_menus" "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_files" "go-humas-be/app/module/ppid_datas" @@ -64,6 +65,7 @@ func main() { master_modules.NewMasterModulesModule, ppid_data_files.NewPpidDataFilesModule, ppid_data_categories.NewPpidDataCategoriesModule, + ppid_data_approval_histories.NewPpidDataApprovalHistoriesModule, ppid_datas.NewPpidDatasModule, provinces.NewProvincesModule, user_levels.NewUserLevelsModule,