mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-08-10 05:37:44 +02:00
fix:#65 updated db model for proxyrecord
This commit is contained in:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user