Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
* develop:
  fix: logic vault (#1243)
  • Loading branch information
trkhoi committed Nov 21, 2023
2 parents 91628d3 + 6269254 commit 0dd5f29
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions pkg/entities/vault.go
Original file line number Diff line number Diff line change
Expand Up @@ -566,11 +566,13 @@ func (e *Entity) CreateTreasurerRequest(req *request.CreateTreasurerRequest) (*r

// add submission with status pending for all treasurer in vaul
treasurerSubmission := make([]model.VaultSubmission, 0)
currentApproved := 0

for _, treasurer := range treasurers {
status := consts.TreasurerSubmissionStatusPending
if treasurer.UserProfileId == req.RequesterProfileId {
status = consts.TreasurerSubmissionStatusApproved
currentApproved++
}

treasurerSubmission = append(treasurerSubmission, model.VaultSubmission{
Expand All @@ -592,7 +594,7 @@ func (e *Entity) CreateTreasurerRequest(req *request.CreateTreasurerRequest) (*r
// there's 2 case here
// - after the requester default approve the request, number of approved will pass the threshold -> execute action now
// - or not pass the threshold -> send DM to treasurer about approve / reject button
isDecidedAndExecuted, err := e.PostCreateTreasurerRequest(req, treasurerReq, vault, treasurers)
isDecidedAndExecuted, err := e.PostCreateTreasurerRequest(req, treasurerReq, vault, treasurers, currentApproved)
if err != nil {
e.log.Fields(logger.Fields{"req": req}).Errorf(err, "[entity.AddTreasurerToVault] - e.PostCreateTreasurerRequest failed")
return nil, err
Expand All @@ -605,9 +607,12 @@ func (e *Entity) CreateTreasurerRequest(req *request.CreateTreasurerRequest) (*r
}, nil
}

func (e *Entity) PostCreateTreasurerRequest(req *request.CreateTreasurerRequest, treasurerRequest *model.VaultRequest, vault *model.Vault, treasurers []model.VaultTreasurer) (bool, error) {
func (e *Entity) PostCreateTreasurerRequest(req *request.CreateTreasurerRequest, treasurerRequest *model.VaultRequest, vault *model.Vault, treasurers []model.VaultTreasurer, currentApproved int) (bool, error) {
threshold, _ := strconv.ParseFloat(vault.Threshold, 64)
percentage := float64(1) / float64(len(treasurers)) * 100
percentage := 0.0
if currentApproved > 0 {
percentage = float64(1) / float64(currentApproved) * 100
}

if percentage >= threshold {
// execute action
Expand Down

0 comments on commit 0dd5f29

Please sign in to comment.