feat: update article approvals
This commit is contained in:
parent
d61198ef22
commit
23493e7800
|
|
@ -8,6 +8,6 @@ type ArticleApprovals struct {
|
||||||
ApprovalBy uint `json:"approval_by" gorm:"type:int4"`
|
ApprovalBy uint `json:"approval_by" gorm:"type:int4"`
|
||||||
StatusId int `json:"status_id" gorm:"type:int4"`
|
StatusId int `json:"status_id" gorm:"type:int4"`
|
||||||
Message string `json:"message" gorm:"type:varchar"`
|
Message string `json:"message" gorm:"type:varchar"`
|
||||||
ApprovalAtLevel int `json:"approval_at_level" gorm:"type:int4"`
|
ApprovalAtLevel *int `json:"approval_at_level" gorm:"type:int4"`
|
||||||
CreatedAt time.Time `json:"created_at" gorm:"default:now()"`
|
CreatedAt time.Time `json:"created_at" gorm:"default:now()"`
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,15 @@ package entity
|
||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
type UserLevels struct {
|
type UserLevels struct {
|
||||||
ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"`
|
ID uint `json:"id" gorm:"primaryKey;type:int4;autoIncrement"`
|
||||||
Name string `json:"name" gorm:"type:varchar"`
|
Name string `json:"name" gorm:"type:varchar"`
|
||||||
AliasName string `json:"alias_name" gorm:"type:varchar"`
|
AliasName string `json:"alias_name" gorm:"type:varchar"`
|
||||||
LevelNumber int `json:"level_number" gorm:"type:int4"`
|
LevelNumber int `json:"level_number" gorm:"type:int4"`
|
||||||
ParentLevelId *int `json:"parent_level_id" gorm:"type:int4"`
|
ParentLevelId *int `json:"parent_level_id" gorm:"type:int4"`
|
||||||
ProvinceId *int `json:"province_id" gorm:"type:int4"`
|
ProvinceId *int `json:"province_id" gorm:"type:int4"`
|
||||||
Group *string `json:"group" gorm:"type:varchar"`
|
Group *string `json:"group" gorm:"type:varchar"`
|
||||||
IsActive *bool `json:"is_active" gorm:"type:bool"`
|
IsApprovalActive *bool `json:"is_approval_active" gorm:"type:bool;default:false"`
|
||||||
CreatedAt time.Time `json:"created_at" gorm:"default:now()"`
|
IsActive *bool `json:"is_active" gorm:"type:bool"`
|
||||||
UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"`
|
CreatedAt time.Time `json:"created_at" gorm:"default:now()"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"`
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,6 @@ type ArticleApprovalsResponse struct {
|
||||||
ApprovalBy uint `json:"approvalBy"`
|
ApprovalBy uint `json:"approvalBy"`
|
||||||
StatusId int `json:"statusId"`
|
StatusId int `json:"statusId"`
|
||||||
Message string `json:"message"`
|
Message string `json:"message"`
|
||||||
ApprovalAtLevel int `json:"approvalAtLevel"`
|
ApprovalAtLevel *int `json:"approvalAtLevel"`
|
||||||
CreatedAt time.Time `json:"createdAt"`
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,12 +72,12 @@ func (_i *articleApprovalsService) Save(req request.ArticleApprovalsCreateReques
|
||||||
|
|
||||||
createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
|
createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
|
||||||
newReq.ApprovalBy = createdBy.ID
|
newReq.ApprovalBy = createdBy.ID
|
||||||
newReq.ApprovalAtLevel = createdBy.UserLevel.LevelNumber
|
newReq.ApprovalAtLevel = &createdBy.UserLevel.LevelNumber
|
||||||
|
|
||||||
approvalByUserLevelId := createdBy.UserLevelId
|
approvalByUserLevelId := createdBy.UserLevelId
|
||||||
approvalParentLevelId := createdBy.UserLevel.ParentLevelId
|
approvalParentLevelId := createdBy.UserLevel.ParentLevelId
|
||||||
|
|
||||||
err = _i.ArticlesService.UpdateApproval(newReq.ArticleId, newReq.StatusId, int(approvalByUserLevelId), newReq.ApprovalAtLevel, *approvalParentLevelId)
|
err = _i.ArticlesService.UpdateApproval(newReq.ArticleId, newReq.StatusId, int(approvalByUserLevelId), *newReq.ApprovalAtLevel, *approvalParentLevelId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -179,8 +179,15 @@ func (_i *articlesService) Save(req request.ArticlesCreateRequest, authToken str
|
||||||
|
|
||||||
// Approval
|
// Approval
|
||||||
statusIdOne := 1
|
statusIdOne := 1
|
||||||
newReq.NeedApprovalFrom = &userParentLevelId
|
statusIdTwo := 2
|
||||||
newReq.StatusId = &statusIdOne
|
createdBy := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
|
||||||
|
if createdBy != nil && *createdBy.UserLevel.IsApprovalActive == true {
|
||||||
|
newReq.NeedApprovalFrom = nil
|
||||||
|
newReq.StatusId = &statusIdTwo
|
||||||
|
} else {
|
||||||
|
newReq.NeedApprovalFrom = &userParentLevelId
|
||||||
|
newReq.StatusId = &statusIdOne
|
||||||
|
}
|
||||||
|
|
||||||
saveArticleRes, err := _i.Repo.Create(newReq)
|
saveArticleRes, err := _i.Repo.Create(newReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -188,12 +195,24 @@ func (_i *articlesService) Save(req request.ArticlesCreateRequest, authToken str
|
||||||
}
|
}
|
||||||
|
|
||||||
// Approval
|
// Approval
|
||||||
articleApproval := &entity.ArticleApprovals{
|
var articleApproval *entity.ArticleApprovals
|
||||||
ArticleId: saveArticleRes.ID,
|
|
||||||
ApprovalBy: *newReq.CreatedById,
|
if createdBy != nil && *createdBy.UserLevel.IsApprovalActive == true {
|
||||||
StatusId: statusIdOne,
|
articleApproval = &entity.ArticleApprovals{
|
||||||
Message: "Need Approval",
|
ArticleId: saveArticleRes.ID,
|
||||||
ApprovalAtLevel: userLevelNumber,
|
ApprovalBy: *newReq.CreatedById,
|
||||||
|
StatusId: statusIdOne,
|
||||||
|
Message: "Need Approval",
|
||||||
|
ApprovalAtLevel: &userLevelNumber,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
articleApproval = &entity.ArticleApprovals{
|
||||||
|
ArticleId: saveArticleRes.ID,
|
||||||
|
ApprovalBy: *newReq.CreatedById,
|
||||||
|
StatusId: statusIdTwo,
|
||||||
|
Message: "Publish Otomatis",
|
||||||
|
ApprovalAtLevel: nil,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = _i.ArticleApprovalsRepo.Create(articleApproval)
|
_, err = _i.ArticleApprovalsRepo.Create(articleApproval)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue