add verify user privileges utils

This commit is contained in:
Pavel 2024-06-08 17:27:18 +03:00
parent 501a3689fd
commit 74ecde46ec

43
utils/verifyPrivilege.go Normal file

@ -0,0 +1,43 @@
package utils
import (
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/model"
"time"
)
func VerifyUserPrivileges(currentPrivileges []model.ShortPrivilege) bool {
if HasQuizCntPrivilege(currentPrivileges) {
return true
}
if HasUnlimitedPrivilege(currentPrivileges) {
return true
}
return false
}
func HasQuizCntPrivilege(privileges []model.ShortPrivilege) bool {
for _, privilege := range privileges {
if privilege.PrivilegeID == "quizCnt" && privilege.Amount > 0 {
return true
}
}
return false
}
func HasUnlimitedPrivilege(privileges []model.ShortPrivilege) bool {
for _, privilege := range privileges {
if privilege.PrivilegeID == "quizUnlimTime" {
return IsPrivilegeExpired(privilege)
}
}
return false
}
func IsPrivilegeExpired(privilege model.ShortPrivilege) bool {
expirationTime := privilege.CreatedAt.Add(time.Duration(privilege.Amount) * 24 * time.Hour)
currentTime := time.Now()
return currentTime.Before(expirationTime)
}