wip
This commit is contained in:
@@ -10,17 +10,17 @@ import (
|
||||
)
|
||||
|
||||
func validateMembership(db *gorm.DB, user *models.User, sl validator.StructLevel) {
|
||||
if user.Membership.SubscriptionModel.RequiredMembershipField != "" {
|
||||
switch user.Membership.SubscriptionModel.RequiredMembershipField {
|
||||
if user.Membership.Subscription.RequiredMembershipField != "" {
|
||||
switch user.Membership.Subscription.RequiredMembershipField {
|
||||
case "ParentMembershipID":
|
||||
if err := CheckParentMembershipID(db, user); err != nil {
|
||||
logger.Error.Printf("Error ParentMembershipValidation: %v", err.Error())
|
||||
sl.ReportError(user.Membership.ParentMembershipID, user.Membership.SubscriptionModel.RequiredMembershipField,
|
||||
sl.ReportError(user.Membership.ParentMembershipID, user.Membership.Subscription.RequiredMembershipField,
|
||||
"RequiredMembershipField", "invalid", "")
|
||||
}
|
||||
default:
|
||||
logger.Error.Printf("Error no matching RequiredMembershipField: %v", errors.ErrInvalidValue.Error())
|
||||
sl.ReportError(user.Membership.ParentMembershipID, user.Membership.SubscriptionModel.RequiredMembershipField,
|
||||
sl.ReportError(user.Membership.ParentMembershipID, user.Membership.Subscription.RequiredMembershipField,
|
||||
"RequiredMembershipField", "not_implemented", "")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,6 @@ func SetupValidators(db *gorm.DB) {
|
||||
|
||||
// Register struct-level validations
|
||||
v.RegisterStructValidation(ValidateUserFactory(db), models.User{})
|
||||
v.RegisterStructValidation(ValidateSubscription, models.SubscriptionModel{})
|
||||
v.RegisterStructValidation(ValidateSubscription, models.Subscription{})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,19 +3,17 @@ package validation
|
||||
import (
|
||||
"GoMembership/internal/models"
|
||||
"GoMembership/internal/repositories"
|
||||
"GoMembership/pkg/logger"
|
||||
|
||||
"github.com/go-playground/validator/v10"
|
||||
)
|
||||
|
||||
// ValidateNewSubscription validates a new subscription model being created
|
||||
func ValidateSubscription(sl validator.StructLevel) {
|
||||
subscription := sl.Current().Interface().(models.SubscriptionModel)
|
||||
subscription := sl.Current().Interface().(models.Subscription)
|
||||
|
||||
if subscription.Name == "" {
|
||||
sl.ReportError(subscription.Name, "Name", "name", "required", "")
|
||||
}
|
||||
logger.Error.Printf("parent.type.name: %#v", sl.Parent().Type().Name())
|
||||
if sl.Parent().Type().Name() == "" {
|
||||
// This is modifying a subscription directly
|
||||
if subscription.Details == "" {
|
||||
|
||||
@@ -30,16 +30,16 @@ func ValidateUserFactory(db *gorm.DB) validator.StructLevelFunc {
|
||||
func validateUser(db *gorm.DB, sl validator.StructLevel) {
|
||||
user := sl.Current().Interface().(models.User)
|
||||
|
||||
// validate subscriptionModel
|
||||
if user.Membership.SubscriptionModel.Name == "" {
|
||||
sl.ReportError(user.Membership.SubscriptionModel.Name, "subscription.name", "name", "required", "")
|
||||
// validate subscription
|
||||
if user.Membership.Subscription.Name == "" {
|
||||
sl.ReportError(user.Membership.Subscription.Name, "subscription.name", "name", "required", "")
|
||||
} else {
|
||||
selectedModel, err := repositories.GetSubscriptionByName(&user.Membership.SubscriptionModel.Name)
|
||||
selectedModel, err := repositories.GetSubscriptionByName(&user.Membership.Subscription.Name)
|
||||
if err != nil {
|
||||
logger.Error.Printf("Error finding subscription model for user %v: %v", user.Email, err)
|
||||
sl.ReportError(user.Membership.SubscriptionModel.Name, "subscription.name", "name", "invalid", "")
|
||||
sl.ReportError(user.Membership.Subscription.Name, "subscription.name", "name", "invalid", "")
|
||||
} else {
|
||||
user.Membership.SubscriptionModel = *selectedModel
|
||||
user.Membership.Subscription = *selectedModel
|
||||
}
|
||||
}
|
||||
if user.IsSupporter() {
|
||||
|
||||
Reference in New Issue
Block a user