diff options
| author | Elizabeth <elizabeth@simponic.xyz> | 2024-04-09 18:39:14 -0400 |
|---|---|---|
| committer | simponic <simponic@hatecomputers.club> | 2024-04-09 18:39:14 -0400 |
| commit | 1d75bf7489527925217bd5611ba7910c0ffe077c (patch) | |
| tree | 3b6e6056912648a88e1e42c1e42ed7e58e2d4701 /api/guestbook | |
| parent | ee49015cc90e6c136ad94243fffc9241b9506a36 (diff) | |
| download | hatecomputers.club-1d75bf7489527925217bd5611ba7910c0ffe077c.tar.gz hatecomputers.club-1d75bf7489527925217bd5611ba7910c0ffe077c.zip | |
profiles (#7)
Reviewed-on: https://git.hatecomputers.club/hatecomputers/hatecomputers.club/pulls/7
Co-authored-by: Elizabeth <elizabeth@simponic.xyz>
Co-committed-by: Elizabeth <elizabeth@simponic.xyz>
Diffstat (limited to 'api/guestbook')
| -rw-r--r-- | api/guestbook/guestbook.go | 66 |
1 files changed, 35 insertions, 31 deletions
diff --git a/api/guestbook/guestbook.go b/api/guestbook/guestbook.go index 60a7b4b..c0c7892 100644 --- a/api/guestbook/guestbook.go +++ b/api/guestbook/guestbook.go @@ -10,37 +10,13 @@ import ( "git.hatecomputers.club/hatecomputers/hatecomputers.club/utils" ) -func validateGuestbookEntry(entry *database.GuestbookEntry) []string { - errors := []string{} - - if entry.Name == "" { - errors = append(errors, "name is required") - } - - if entry.Message == "" { - errors = append(errors, "message is required") - } - - messageLength := len(entry.Message) - if messageLength > 500 { - errors = append(errors, "message cannot be longer than 500 characters") - } - - newLines := strings.Count(entry.Message, "\n") - if newLines > 10 { - errors = append(errors, "message cannot contain more than 10 new lines") - } - - return errors -} - func SignGuestbookContinuation(context *types.RequestContext, req *http.Request, resp http.ResponseWriter) types.ContinuationChain { return func(success types.Continuation, failure types.Continuation) types.ContinuationChain { name := req.FormValue("name") message := req.FormValue("message") - formErrors := types.FormError{ - Errors: []string{}, + formErrors := types.BannerMessages{ + Messages: []string{}, } entry := &database.GuestbookEntry{ @@ -48,24 +24,28 @@ func SignGuestbookContinuation(context *types.RequestContext, req *http.Request, Name: name, Message: message, } - formErrors.Errors = append(formErrors.Errors, validateGuestbookEntry(entry)...) + formErrors.Messages = append(formErrors.Messages, validateGuestbookEntry(entry)...) - if len(formErrors.Errors) == 0 { + if len(formErrors.Messages) == 0 { _, err := database.SaveGuestbookEntry(context.DBConn, entry) if err != nil { log.Println(err) - formErrors.Errors = append(formErrors.Errors, "failed to save entry") + formErrors.Messages = append(formErrors.Messages, "failed to save entry") } } - if len(formErrors.Errors) > 0 { - (*context.TemplateData)["FormError"] = formErrors + if len(formErrors.Messages) > 0 { + (*context.TemplateData)["Error"] = formErrors (*context.TemplateData)["EntryForm"] = entry resp.WriteHeader(http.StatusBadRequest) return failure(context, req, resp) } + formSuccess := types.BannerMessages{ + Messages: []string{"entry added."}, + } + (*context.TemplateData)["Success"] = formSuccess return success(context, req, resp) } } @@ -83,3 +63,27 @@ func ListGuestbookContinuation(context *types.RequestContext, req *http.Request, return success(context, req, resp) } } + +func validateGuestbookEntry(entry *database.GuestbookEntry) []string { + errors := []string{} + + if entry.Name == "" { + errors = append(errors, "name is required") + } + + if entry.Message == "" { + errors = append(errors, "message is required") + } + + messageLength := len(entry.Message) + if messageLength > 500 { + errors = append(errors, "message cannot be longer than 500 characters") + } + + newLines := strings.Count(entry.Message, "\n") + if newLines > 10 { + errors = append(errors, "message cannot contain more than 10 new lines") + } + + return errors +} |
