feat:#16 added uuid for all modules in back-/frontend

This commit is contained in:
masterelmar
2023-10-25 16:54:48 +02:00
parent 3cd9f1fdbd
commit 5c438424a2
12 changed files with 70 additions and 205 deletions

View File

@@ -16,8 +16,6 @@ import (
const expirationTime = 5 * time.Minute
func Feed(c echo.Context, app *pocketbase.PocketBase, token string) error {
layout := "2006-01-02 15:04:05 -0700 MST"
var result string
var responseWriter = c.Response().Writer
feed, err := db.FindFeedByToken(token, app)
@@ -25,11 +23,11 @@ func Feed(c echo.Context, app *pocketbase.PocketBase, token string) error {
return c.JSON(http.StatusNotFound, err)
}
created, _ := time.Parse(layout, feed.Created)
created := feed.Created
var modules []model.FeedCollection
_ = json.Unmarshal([]byte(feed.Modules), &modules)
if created.Add(time.Hour * 265).Before(time.Now()) {
if created.Time().Add(time.Hour * 265).Before(time.Now()) {
newFeed, err := createFeedForToken(app, modules)
if err != nil {
return c.JSON(http.StatusInternalServerError, err)

View File

@@ -11,44 +11,48 @@ import (
//add uuid field
//remove module name field
func MigrateFeedJson(app *pocketbase.PocketBase) {
func MigrateFeedJson(app *pocketbase.PocketBase) error {
var feeds []model.Feed
err := app.Dao().DB().Select("*").From("feed").All(&feeds)
records, err := app.Dao().FindRecordsByFilter("feeds", "1=1", "-created", 0, 0)
if err != nil {
return
return err
}
for _, feed := range feeds {
for _, feed := range records {
var modules []model.FeedCollection
err := json.Unmarshal([]byte(feed.Modules), &modules)
err := json.Unmarshal([]byte(feed.GetString("modules")), &modules)
if err != nil {
return
return err
}
var uuidFeedCollection model.UUIDFeedCollection
var uuidFeedCollections []model.FeedCollection
for _, module := range modules {
uuid := searchUUIDForModule(app, module.Name)
if uuid != "" {
uuidFeedCollection = model.UUIDFeedCollection{UUID: uuid, Name: module.Name, Course: module.Course, UserDefinedName: module.UserDefinedName}
app.Dao().DB().Update("feed", dbx.Params{"modules": uuidFeedCollection}, dbx.NewExp("id = {:id}", dbx.Params{"id": feed.Id}))
uuidFeedCollections = append(uuidFeedCollections, model.FeedCollection{UUID: uuid, Name: module.Name, Course: module.Course, UserDefinedName: module.UserDefinedName})
}
}
}
jsonModules, _ := json.Marshal(uuidFeedCollections)
feed.Set("modules", string(jsonModules))
err = app.Dao().SaveRecord(feed)
if err != nil {
return err
}
}
return nil
}
func searchUUIDForModule(app *pocketbase.PocketBase, module string) string {
var uuid string
err := app.Dao().DB().Select("uuid").From("module").Where(dbx.NewExp("name = {:name}", dbx.Params{"name": module})).One(&uuid)
func searchUUIDForModule(app *pocketbase.PocketBase, moduleName string) string {
var event model.Event
err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("Name = {:name}", dbx.Params{"name": moduleName})).One(&event)
if err != nil {
return ""
}
return uuid
return event.UUID
}