summaryrefslogtreecommitdiff
path: root/api/guestbook
diff options
context:
space:
mode:
authorElizabeth <elizabeth@simponic.xyz>2024-04-09 18:39:14 -0400
committersimponic <simponic@hatecomputers.club>2024-04-09 18:39:14 -0400
commit1d75bf7489527925217bd5611ba7910c0ffe077c (patch)
tree3b6e6056912648a88e1e42c1e42ed7e58e2d4701 /api/guestbook
parentee49015cc90e6c136ad94243fffc9241b9506a36 (diff)
downloadhatecomputers.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.go66
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
+}