feat: introduce feed management for individual and professor modules across frontend and backend services.

This commit is contained in:
Elmar Kresse
2025-11-22 21:20:41 +01:00
parent 34ad90d50d
commit ac6e1fe0dd
21 changed files with 1655 additions and 240 deletions

View File

@@ -18,12 +18,13 @@ package db
import (
"errors"
"htwkalender/data-manager/model"
"time"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/types"
"htwkalender/data-manager/model"
"time"
)
var _ core.RecordProxy = (*Feed)(nil)
@@ -80,6 +81,22 @@ func (f *Feed) GetUpdated() types.DateTime {
return f.GetDateTime("updated")
}
func (f *Feed) GetType() string {
return f.GetString("type")
}
func (f *Feed) SetType(feedType string) {
f.Set("type", feedType)
}
func (f *Feed) GetUser() string {
return f.GetString("user")
}
func (f *Feed) SetUser(user string) {
f.Set("user", user)
}
func newFeed(record *core.Record) *Feed {
return &Feed{
BaseRecordProxy: core.BaseRecordProxy{Record: record},
@@ -99,6 +116,13 @@ func NewFeed(collection *core.Collection, feed model.Feed) (*Feed, error) {
dbFeed.SetModules(feed.Modules)
dbFeed.SetRetrieved(feed.Retrieved)
dbFeed.SetDeleted(feed.Deleted)
// Set type to "student" as default if not specified
if feed.Type == "" {
dbFeed.SetType("student")
} else {
dbFeed.SetType(feed.Type)
}
dbFeed.SetUser(feed.User)
return dbFeed, nil
}
@@ -110,6 +134,8 @@ func (f *Feed) ToModel() model.Feed {
Created: f.GetCreated(),
Updated: f.GetUpdated(),
Deleted: f.GetDeleted(),
Type: f.GetType(),
User: f.GetUser(),
BaseModel: core.BaseModel{
Id: f.GetId(),
},
@@ -143,6 +169,8 @@ func FindFeedByToken(app *pocketbase.PocketBase, token string) (*model.Feed, err
feed.Modules = record.GetString("modules")
feed.Retrieved = record.GetDateTime("retrieved")
feed.Deleted = record.GetBool("deleted")
feed.Type = record.GetString("type")
feed.User = record.GetString("user")
//update retrieved time if the is not marked as deleted
if !record.GetBool("deleted") {