add pocketbase
This commit is contained in:
50
backend/custom/manifest/manifest.go
Normal file
50
backend/custom/manifest/manifest.go
Normal file
@ -0,0 +1,50 @@
|
||||
package manifest
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/pocketbase/pocketbase"
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
"github.com/pocketbase/pocketbase/tools/router"
|
||||
)
|
||||
|
||||
type Manifest struct {
|
||||
Name string `json:"name"`
|
||||
ShortName string `json:"short_name"`
|
||||
Description string `json:"description"`
|
||||
Icons []Icon `json:"icons"`
|
||||
StartURL string `json:"start_url"`
|
||||
Display string `json:"display"`
|
||||
BackgroundColor string `json:"background_color"`
|
||||
ThemeColor string `json:"theme_color"`
|
||||
Lang string `json:"lang"`
|
||||
Author string `json:"author"`
|
||||
OgHost string `json:"ogHost"`
|
||||
Orientation string `json:"orientation"`
|
||||
}
|
||||
|
||||
type Icon struct {
|
||||
Src string `json:"src"`
|
||||
Sizes string `json:"sizes"`
|
||||
Type string `json:"type"`
|
||||
}
|
||||
|
||||
func ServeManifst(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] {
|
||||
return se.Router.GET("/api/manifest.json", func(e *core.RequestEvent) error {
|
||||
manifest, err := GetSettings(app)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
e.Response.Header().Add("content-type", "application/json")
|
||||
return e.String(http.StatusOK, manifest)
|
||||
})
|
||||
}
|
||||
|
||||
func GetSettings(app *pocketbase.PocketBase) (string, error) {
|
||||
record, err := app.FindFirstRecordByFilter("settings", "key='manifest'", nil)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return record.GetString("value"), nil
|
||||
}
|
Reference in New Issue
Block a user