diff --git a/service/db/dbEvents.go b/service/db/dbEvents.go index f74f1a2..30a046f 100644 --- a/service/db/dbEvents.go +++ b/service/db/dbEvents.go @@ -114,16 +114,19 @@ func GetPlanForCourseAndSemester(app *pocketbase.PocketBase, course string, seme return events } -func GetPlanForModules(app *pocketbase.PocketBase, modules []string) Events { +func GetPlanForModules(app *pocketbase.PocketBase, modules []struct { + Name string `db:"Name" json:"Name"` + Course string `db:"course" json:"Course"` +}) Events { // build query string with name equals elements in modules for dbx query var queryString string for i, module := range modules { if i == 0 { - queryString = "Name = '" + module + "'" + queryString = "Name = '" + module.Name + "'" } else { - queryString = queryString + " OR Name = '" + module + "'" + queryString = queryString + " OR Name = '" + module.Name + "'" } } diff --git a/service/ical/ical.go b/service/ical/ical.go index d02730d..2bcfe4b 100644 --- a/service/ical/ical.go +++ b/service/ical/ical.go @@ -28,7 +28,10 @@ func Feed(c echo.Context, app *pocketbase.PocketBase, token string) error { created, _ := time.Parse(layout, feed.Created) - var modules []string + var modules []struct { + Name string `db:"Name" json:"Name"` + Course string `db:"course" json:"Course"` + } _ = json.Unmarshal([]byte(feed.Modules), &modules) if created.Add(time.Hour * 265).Before(time.Now()) { newFeed, err := createFeedForToken(app, modules) @@ -47,7 +50,10 @@ func Feed(c echo.Context, app *pocketbase.PocketBase, token string) error { return nil } -func createFeedForToken(app *pocketbase.PocketBase, modules []string) (*model.FeedModel, error) { +func createFeedForToken(app *pocketbase.PocketBase, modules []struct { + Name string `db:"Name" json:"Name"` + Course string `db:"course" json:"Course"` +}) (*model.FeedModel, error) { res := db.GetPlanForModules(app, modules) b := bytes.Buffer{} goics.NewICalEncode(&b).Encode(res) @@ -63,7 +69,11 @@ func writeSuccess(message string, w http.ResponseWriter) { func CreateIndividualFeed(c echo.Context, app *pocketbase.PocketBase) error { // read json from request body - var modules []string + var modules []struct { + Name string `db:"Name" json:"Name"` + Course string `db:"course" json:"Course"` + } + requestBodyBytes, err := io.ReadAll(c.Request().Body) if err != nil { return apis.NewApiError(400, "Could not bind request body", err)