31 lines
1.0 KiB
Go
31 lines
1.0 KiB
Go
package validation
|
|
|
|
import (
|
|
"GoMembership/internal/models"
|
|
"GoMembership/internal/repositories"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
)
|
|
|
|
func validateMembership(sl validator.StructLevel, membership models.Membership) {
|
|
if membership.SubscriptionModel.RequiredMembershipField != "" {
|
|
switch membership.SubscriptionModel.RequiredMembershipField {
|
|
case "ParentMembershipID":
|
|
if membership.ParentMembershipID == 0 {
|
|
sl.ReportError(membership.ParentMembershipID, membership.SubscriptionModel.RequiredMembershipField,
|
|
"RequiredMembershipField", "required", "")
|
|
} else {
|
|
_, err := repositories.GetUserByID(&membership.ParentMembershipID)
|
|
if err != nil {
|
|
sl.ReportError(membership.ParentMembershipID, membership.SubscriptionModel.RequiredMembershipField,
|
|
"RequiredMembershipField", "user_id_not_found", "")
|
|
}
|
|
}
|
|
default:
|
|
sl.ReportError(membership.ParentMembershipID, membership.SubscriptionModel.RequiredMembershipField,
|
|
"RequiredMembershipField", "not_implemented", "")
|
|
}
|
|
|
|
}
|
|
}
|