1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package post
import (
"context"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/go-ozzo/ozzo-validation/v4/is"
"github.com/volatiletech/sqlboiler/v4/boil"
"gitlab.com/alexkavon/newsstand/src/models"
)
func InitInsertHooks() {
models.AddPostHook(boil.BeforeInsertHook, validateNewPostHook)
}
func validateNewPostHook(ctx context.Context, exec boil.ContextExecutor, p *models.Post) error {
err := validation.ValidateStruct(p,
validation.Field(&p.Title, validation.Required, validation.Length(10, 80)),
validation.Field(&p.Description, validation.Max(5000)),
validation.Field(&p.URL, validation.Length(3, 255), is.URL),
)
if err != nil {
return err
}
return nil
}
func checkDescriptionLength() {
// check if post/comment description is <= 5000 characters
}
func stripMarkdown() {
// strip of specific tags or all tags
}
func checkBlacklist() {
// check if URL is on blacklist
}
|