fix:#65 updated db model for proxyrecord

This commit is contained in:
Elmar Kresse
2025-04-22 12:24:05 +02:00
parent c5afe8efca
commit 3e07451c47
9 changed files with 451 additions and 99 deletions

View File

@@ -21,19 +21,117 @@ import (
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/types"
"htwkalender/data-manager/model"
"time"
)
func SaveFeed(feed model.Feed, collection *core.Collection, app *pocketbase.PocketBase) (*core.Record, error) {
record := core.NewRecord(collection)
record.Set("modules", feed.Modules)
err := app.Save(record)
var _ core.RecordProxy = (*Feed)(nil)
if err != nil {
return nil, err
type Feed struct {
core.BaseRecordProxy
}
type Feeds []*Feed
// Getter and Setter for the Feed struct
func (f *Feed) GetModules() string {
return f.GetString("modules")
}
func (f *Feed) SetModules(modules string) {
f.Set("modules", modules)
}
func (f *Feed) GetRetrieved() types.DateTime {
return f.GetDateTime("retrieved")
}
func (f *Feed) SetRetrieved(retrieved types.DateTime) {
f.SetRetrieved(retrieved)
}
func (f *Feed) GetDeleted() bool {
return f.GetBool("deleted")
}
func (f *Feed) SetDeleted(deleted bool) {
f.Set("deleted", deleted)
}
func (f *Feed) GetId() string {
return f.GetString("id")
}
func (f *Feed) SetId(id string) {
f.Set("id", id)
}
func (f *Feed) GetCreated() types.DateTime {
return f.GetDateTime("created")
}
func (f *Feed) SetCreated(created time.Time) {
f.Set("created", created)
}
func (f *Feed) GetUpdated() types.DateTime {
return f.GetDateTime("updated")
}
func newFeed(record *core.Record) *Feed {
return &Feed{
BaseRecordProxy: core.BaseRecordProxy{Record: record},
}
return record, nil
}
func NewFeed(collection *core.Collection, feed model.Feed) (*Feed, error) {
// Create a new Feed instance
if collection.Name != "feeds" {
return nil, core.ErrInvalidFieldValue
}
record := core.NewRecord(collection)
record.Set("id:autogenerate", "")
dbFeed := newFeed(record)
dbFeed.SetModules(feed.Modules)
dbFeed.SetRetrieved(feed.Retrieved)
dbFeed.SetDeleted(feed.Deleted)
return dbFeed, nil
}
func (f *Feed) ToModel() model.Feed {
return model.Feed{
Modules: f.GetModules(),
Retrieved: f.GetRetrieved(),
Created: f.GetCreated(),
Updated: f.GetUpdated(),
Deleted: f.GetDeleted(),
}
}
func SaveFeed(feed model.Feed, collection *core.Collection, app *pocketbase.PocketBase) (model.Feed, error) {
collection, err := app.FindCollectionByNameOrId("feeds")
if err != nil {
return model.Feed{}, err
}
dbFeed, recordErr := NewFeed(collection, feed)
if recordErr != nil {
return model.Feed{}, recordErr
}
// Save the record to the database
saveErr := app.Save(dbFeed)
if saveErr != nil {
return model.Feed{}, saveErr
}
return dbFeed.ToModel(), nil
}
func FindFeedByToken(app *pocketbase.PocketBase, token string) (*model.Feed, error) {