Implement slugifying logic
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
pb_data
|
52
main.go
52
main.go
@@ -5,6 +5,7 @@ import (
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/pocketbase/pocketbase"
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
@@ -12,6 +13,7 @@ import (
|
||||
|
||||
var Error *log.Logger
|
||||
var Warning *log.Logger
|
||||
|
||||
func init() {
|
||||
log.SetFlags(log.Lmicroseconds | log.Lshortfile)
|
||||
|
||||
@@ -23,22 +25,42 @@ func init() {
|
||||
log.Lmicroseconds|log.Lshortfile)
|
||||
}
|
||||
|
||||
var cstrings = struct {
|
||||
posts string
|
||||
title string
|
||||
slug string
|
||||
}{
|
||||
"posts",
|
||||
"title",
|
||||
"slug",
|
||||
}
|
||||
|
||||
func main() {
|
||||
app := pocketbase.New()
|
||||
app := pocketbase.New()
|
||||
|
||||
app.OnModelBeforeCreate().Add(func(e *core.ModelEvent) error {
|
||||
log.Println(e.Model.TableName())
|
||||
log.Println(e.Model.GetId())
|
||||
return nil
|
||||
})
|
||||
app.OnRecordBeforeCreateRequest(cstrings.posts).Add(func(e *core.RecordCreateEvent) error {
|
||||
title := e.Record.GetString(cstrings.title)
|
||||
slug := MakeSlug(title)
|
||||
e.Record.Set(cstrings.slug, slug)
|
||||
return nil
|
||||
})
|
||||
|
||||
app.OnModelBeforeCreate("users", "members").Add(func(e *core.ModelEvent) error {
|
||||
log.Println(e.Model.TableName())
|
||||
log.Println(e.Model.GetId())
|
||||
return nil
|
||||
})
|
||||
app.OnRecordBeforeUpdateRequest(cstrings.posts).Add(func(e *core.RecordUpdateEvent) error {
|
||||
title := e.Record.GetString(cstrings.title)
|
||||
slug := MakeSlug(title)
|
||||
e.Record.Set(cstrings.slug, slug)
|
||||
return nil
|
||||
})
|
||||
|
||||
if err := app.Start(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
if err := app.Start(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func MakeSlug(input string) string {
|
||||
slug := strings.ToLower(strings.TrimSpace(input))
|
||||
slug = strings.ReplaceAll(slug, " ", "-")
|
||||
slug = strings.ReplaceAll(slug, "&", "and")
|
||||
slug = strings.ReplaceAll(slug, "?", "")
|
||||
return slug
|
||||
}
|
||||
|
Reference in New Issue
Block a user