From 6dce0495b1f5eecfc2b88576ad677cb43544d1ea Mon Sep 17 00:00:00 2001 From: Scott Date: Thu, 12 Nov 2020 19:20:42 +0100 Subject: [PATCH] Add the same check on thread creation to the thread edition --- arn/ThreadAPI.go | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/arn/ThreadAPI.go b/arn/ThreadAPI.go index d93c3703..37876519 100644 --- a/arn/ThreadAPI.go +++ b/arn/ThreadAPI.go @@ -3,12 +3,11 @@ package arn import ( "errors" "fmt" - "reflect" - "github.com/aerogo/aero" "github.com/aerogo/api" "github.com/aerogo/markdown" "github.com/animenotifier/notify.moe/arn/autocorrect" + "reflect" ) // Force interface implementations @@ -125,6 +124,29 @@ func (thread *Thread) Create(ctx aero.Context) error { // Edit creates an edit log entry. func (thread *Thread) Edit(ctx aero.Context, key string, value reflect.Value, newValue reflect.Value) (consumed bool, err error) { + + switch key { + case "Tags": + newTags := newValue.Interface().([]string) + + if len(newTags) < 1 { + return true, errors.New("Need to specify at least one tag") + } + + case "Title": + newTitle := newValue.String() + + if len(newTitle) < 10 { + return true, errors.New("Title too short: Should be at least 10 characters") + } + case "Text": + newText := newValue.String() + + if len(newText) < 10 { + return true, errors.New("Text too short: Should be at least 10 characters") + } + } + return edit(thread, ctx, key, value, newValue) }