package db import ( "errors" "github.com/pocketbase/dbx" "github.com/pocketbase/pocketbase" "github.com/pocketbase/pocketbase/daos" "github.com/pocketbase/pocketbase/models" "htwkalender/model" "time" ) func SaveFeed(feed model.Feed, collection *models.Collection, app *pocketbase.PocketBase) (*models.Record, error) { record := models.NewRecord(collection) record.Set("modules", feed.Modules) err := app.Dao().SaveRecord(record) if err != nil { return nil, err } return record, nil } func FindFeedByToken(token string, app *pocketbase.PocketBase) (*model.Feed, error) { record, err := app.Dao().FindRecordById("feeds", token) if err != nil { return nil, err } var feed model.Feed feed.Modules = record.GetString("modules") feed.Retrieved = record.GetDateTime("retrieved") //update retrieved time record.Set("retrieved", time.Now()) err = app.Dao().SaveRecord(record) return &feed, err } func DeleteFeed(db *daos.Dao, feedId string) error { sqlResult, err := db.DB().Delete("feeds", dbx.NewExp("id = {:id}", dbx.Params{"id": feedId})).Execute() var deletedRows int64 if sqlResult != nil { deletedRows, _ = sqlResult.RowsAffected() } if err != nil { return err } else { if deletedRows == 0 { return errors.New("No feed with id " + feedId + " found") } else { return nil } } } func GetAllFeeds(db *daos.Dao) ([]model.Feed, error) { var feeds []model.Feed err := db.DB().Select("*").From("feeds").All(&feeds) if err != nil { return nil, err } return feeds, nil }