adds settings collection

This commit is contained in:
Christian Beutel
2024-04-13 20:51:05 +02:00
parent f9f8998617
commit feb2214b1b
33 changed files with 1321 additions and 81 deletions

View File

@@ -0,0 +1,130 @@
package migrations
import (
"encoding/json"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/daos"
m "github.com/pocketbase/pocketbase/migrations"
"github.com/pocketbase/pocketbase/models"
)
func init() {
m.Register(func(db dbx.Builder) error {
jsonData := `{
"id": "uavt73rsqcn1n13",
"created": "2024-04-13 13:54:26.023Z",
"updated": "2024-04-13 13:54:26.023Z",
"name": "settings",
"type": "base",
"system": false,
"schema": [
{
"system": false,
"id": "0sepzvkh",
"name": "language",
"type": "select",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSelect": 1,
"values": [
"en",
"de",
"fr",
"hu",
"nl",
"pl",
"pt",
"zh"
]
}
},
{
"system": false,
"id": "zwg1jl0d",
"name": "unit",
"type": "select",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSelect": 1,
"values": [
"metric",
"imperial"
]
}
},
{
"system": false,
"id": "jo1zcsbu",
"name": "mapFocus",
"type": "select",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSelect": 1,
"values": [
"trails",
"location"
]
}
},
{
"system": false,
"id": "ufhepjxo",
"name": "location",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 2000000
}
},
{
"system": false,
"id": "5uip7a4p",
"name": "user",
"type": "relation",
"required": false,
"presentable": false,
"unique": false,
"options": {
"collectionId": "_pb_users_auth_",
"cascadeDelete": true,
"minSelect": null,
"maxSelect": 1,
"displayFields": null
}
}
],
"indexes": [],
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"options": {}
}`
collection := &models.Collection{}
if err := json.Unmarshal([]byte(jsonData), &collection); err != nil {
return err
}
return daos.New(db).SaveCollection(collection)
}, func(db dbx.Builder) error {
dao := daos.New(db)
collection, err := dao.FindCollectionByNameOrId("uavt73rsqcn1n13")
if err != nil {
return err
}
return dao.DeleteCollection(collection)
})
}

View File

@@ -0,0 +1,162 @@
package migrations
import (
"encoding/json"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/daos"
m "github.com/pocketbase/pocketbase/migrations"
"github.com/pocketbase/pocketbase/models"
"github.com/pocketbase/pocketbase/models/schema"
)
func init() {
m.Register(func(db dbx.Builder) error {
dao := daos.New(db)
collection, err := dao.FindCollectionByNameOrId("_pb_users_auth_")
if err != nil {
return err
}
// remove
collection.Schema.RemoveField("wjofulpg")
// remove
collection.Schema.RemoveField("t1wlsqyp")
// remove
collection.Schema.RemoveField("fhxhln9g")
// remove
collection.Schema.RemoveField("wosrk4ue")
query := dao.RecordQuery("_pb_users_auth_")
users := []*models.Record{}
if err := query.All(&users); err != nil {
return err
}
settingsCollection, err := dao.FindCollectionByNameOrId("settings")
if err != nil {
return err
}
for _, user := range users {
settings := models.NewRecord(settingsCollection)
language := user.Get("language")
unit := user.Get("unit")
location := user.Get("location")
settings.Set("language", language)
settings.Set("unit", unit)
settings.Set("location", location)
settings.Set("user", user.Id)
settings.Set("mapFocus", "trails")
if err := dao.SaveRecord(settings); err != nil {
return err
}
}
return dao.SaveCollection(collection)
}, func(db dbx.Builder) error {
dao := daos.New(db)
collection, err := dao.FindCollectionByNameOrId("_pb_users_auth_")
if err != nil {
return err
}
// add
del_unit := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "wjofulpg",
"name": "unit",
"type": "select",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSelect": 1,
"values": [
"metric",
"imperial"
]
}
}`), del_unit); err != nil {
return err
}
collection.Schema.AddField(del_unit)
// add
del_language := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "t1wlsqyp",
"name": "language",
"type": "select",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSelect": 1,
"values": [
"en",
"de",
"fr",
"hu",
"nl",
"pl",
"pt",
"zh"
]
}
}`), del_language); err != nil {
return err
}
collection.Schema.AddField(del_language)
// add
del_mapView := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "fhxhln9g",
"name": "mapView",
"type": "select",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSelect": 1,
"values": [
"location",
"trails"
]
}
}`), del_mapView); err != nil {
return err
}
collection.Schema.AddField(del_mapView)
// add
del_location := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "wosrk4ue",
"name": "location",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 2000000
}
}`), del_location); err != nil {
return err
}
collection.Schema.AddField(del_location)
return dao.SaveCollection(collection)
})
}

View File

@@ -0,0 +1,46 @@
package migrations
import (
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/daos"
m "github.com/pocketbase/pocketbase/migrations"
"github.com/pocketbase/pocketbase/tools/types"
)
func init() {
m.Register(func(db dbx.Builder) error {
dao := daos.New(db);
collection, err := dao.FindCollectionByNameOrId("uavt73rsqcn1n13")
if err != nil {
return err
}
collection.ListRule = types.Pointer("user = @request.auth.id")
collection.ViewRule = types.Pointer("user = @request.auth.id")
collection.CreateRule = types.Pointer("")
collection.UpdateRule = types.Pointer("user = @request.auth.id")
return dao.SaveCollection(collection)
}, func(db dbx.Builder) error {
dao := daos.New(db);
collection, err := dao.FindCollectionByNameOrId("uavt73rsqcn1n13")
if err != nil {
return err
}
collection.ListRule = nil
collection.ViewRule = nil
collection.CreateRule = nil
collection.UpdateRule = nil
return dao.SaveCollection(collection)
})
}

View File

@@ -0,0 +1,98 @@
package migrations
import (
"encoding/json"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/daos"
m "github.com/pocketbase/pocketbase/migrations"
"github.com/pocketbase/pocketbase/models"
)
func init() {
m.Register(func(db dbx.Builder) error {
jsonData := `{
"id": "urytyc428mwlbqq",
"created": "2024-04-13 17:00:41.541Z",
"updated": "2024-04-13 17:00:41.541Z",
"name": "trails_bounding_box",
"type": "view",
"system": false,
"schema": [
{
"system": false,
"id": "iyhsoisl",
"name": "max_lat",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
},
{
"system": false,
"id": "kx2qfztr",
"name": "max_lon",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
},
{
"system": false,
"id": "z4qsnjeb",
"name": "min_lat",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
},
{
"system": false,
"id": "p66xomdb",
"name": "min_lon",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
}
],
"indexes": [],
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"options": {
"query": "SELECT users.id, COALESCE(MAX(trails.lat), 0) AS max_lat, COALESCE(MAX(trails.lon), 0) AS max_lon, COALESCE(MIN(trails.lat), 0) AS min_lat, COALESCE(MIN(trails.lon), 0) AS min_lon FROM users LEFT JOIN trails ON users.id = trails.author GROUP BY users.id;"
}
}`
collection := &models.Collection{}
if err := json.Unmarshal([]byte(jsonData), &collection); err != nil {
return err
}
return daos.New(db).SaveCollection(collection)
}, func(db dbx.Builder) error {
dao := daos.New(db);
collection, err := dao.FindCollectionByNameOrId("urytyc428mwlbqq")
if err != nil {
return err
}
return dao.DeleteCollection(collection)
})
}

View File

@@ -0,0 +1,205 @@
package migrations
import (
"encoding/json"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/daos"
m "github.com/pocketbase/pocketbase/migrations"
"github.com/pocketbase/pocketbase/models/schema"
"github.com/pocketbase/pocketbase/tools/types"
)
func init() {
m.Register(func(db dbx.Builder) error {
dao := daos.New(db);
collection, err := dao.FindCollectionByNameOrId("urytyc428mwlbqq")
if err != nil {
return err
}
collection.ViewRule = types.Pointer("@request.auth.id = id")
// remove
collection.Schema.RemoveField("iyhsoisl")
// remove
collection.Schema.RemoveField("kx2qfztr")
// remove
collection.Schema.RemoveField("z4qsnjeb")
// remove
collection.Schema.RemoveField("p66xomdb")
// add
new_max_lat := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "osfey1yx",
"name": "max_lat",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
}`), new_max_lat); err != nil {
return err
}
collection.Schema.AddField(new_max_lat)
// add
new_max_lon := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "eohslzky",
"name": "max_lon",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
}`), new_max_lon); err != nil {
return err
}
collection.Schema.AddField(new_max_lon)
// add
new_min_lat := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "kigvankd",
"name": "min_lat",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
}`), new_min_lat); err != nil {
return err
}
collection.Schema.AddField(new_min_lat)
// add
new_min_lon := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "ifnks9mg",
"name": "min_lon",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
}`), new_min_lon); err != nil {
return err
}
collection.Schema.AddField(new_min_lon)
return dao.SaveCollection(collection)
}, func(db dbx.Builder) error {
dao := daos.New(db);
collection, err := dao.FindCollectionByNameOrId("urytyc428mwlbqq")
if err != nil {
return err
}
collection.ViewRule = nil
// add
del_max_lat := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "iyhsoisl",
"name": "max_lat",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
}`), del_max_lat); err != nil {
return err
}
collection.Schema.AddField(del_max_lat)
// add
del_max_lon := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "kx2qfztr",
"name": "max_lon",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
}`), del_max_lon); err != nil {
return err
}
collection.Schema.AddField(del_max_lon)
// add
del_min_lat := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "z4qsnjeb",
"name": "min_lat",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
}`), del_min_lat); err != nil {
return err
}
collection.Schema.AddField(del_min_lat)
// add
del_min_lon := &schema.SchemaField{}
if err := json.Unmarshal([]byte(`{
"system": false,
"id": "p66xomdb",
"name": "min_lon",
"type": "json",
"required": false,
"presentable": false,
"unique": false,
"options": {
"maxSize": 1
}
}`), del_min_lon); err != nil {
return err
}
collection.Schema.AddField(del_min_lon)
// remove
collection.Schema.RemoveField("osfey1yx")
// remove
collection.Schema.RemoveField("eohslzky")
// remove
collection.Schema.RemoveField("kigvankd")
// remove
collection.Schema.RemoveField("ifnks9mg")
return dao.SaveCollection(collection)
})
}