diff --git a/pkg/blocks/forms/create_profile.templ b/pkg/blocks/forms/create_profile.templ index e0fccda53..764ab1a00 100644 --- a/pkg/blocks/forms/create_profile.templ +++ b/pkg/blocks/forms/create_profile.templ @@ -2,6 +2,8 @@ package forms import ( "fmt" + "strconv" + "errors" "github.com/onsonr/sonr/pkg/blocks/layout" ) @@ -15,6 +17,30 @@ func (d CreateProfileData) IsHumanLabel() string { return fmt.Sprintf("What is %d + %d?", d.FirstNumber, d.LastNumber) } +func ValidateCreateProfileForm(formData map[string][]string) error { + // Validate ishuman slider + ishumanValues := formData["is_human"] + if len(ishumanValues) == 0 { + return errors.New("human verification is required") + } + + ishumanSum, err := strconv.Atoi(ishumanValues[0]) + if err != nil { + return errors.New("invalid human verification value") + } + + // Get the expected sum from the form data + firstNum, _ := strconv.Atoi(formData["first_number"][0]) + lastNum, _ := strconv.Atoi(formData["last_number"][0]) + expectedSum := firstNum + lastNum + + if ishumanSum != expectedSum { + return errors.New("incorrect sum for human verification") + } + + return nil +} + // ProfileForm is a standard form styled like a card templ CreateProfile(action string, method string, data CreateProfileData) {