diff --git a/backend/model/eventModel.go b/backend/model/eventModel.go index daaf229..b38720b 100644 --- a/backend/model/eventModel.go +++ b/backend/model/eventModel.go @@ -1,8 +1,11 @@ package model +import "github.com/pocketbase/pocketbase/models" + type Events []*Event type Event struct { + UUID string `db:"UUID" json:"uuid"` Day string `db:"Day" json:"day"` Week string `db:"Week" json:"week"` Start string `db:"Start" json:"start"` @@ -15,4 +18,9 @@ type Event struct { BookedAt string `db:"BookedAt" json:"bookedAt"` Course string `db:"course" json:"course"` Semester string `db:"semester" json:"semester"` + models.BaseModel +} + +func (m *Event) TableName() string { + return "events" } diff --git a/backend/service/db/dbEvents.go b/backend/service/db/dbEvents.go index f763260..6654916 100644 --- a/backend/service/db/dbEvents.go +++ b/backend/service/db/dbEvents.go @@ -3,19 +3,15 @@ package db import ( "github.com/pocketbase/dbx" "github.com/pocketbase/pocketbase" - "github.com/pocketbase/pocketbase/models" "htwkalender/model" - "log" ) -func SaveEvents(seminarGroup []model.SeminarGroup, collection *models.Collection, app *pocketbase.PocketBase) ([]*models.Record, error) { +func SaveEvents(seminarGroup []model.SeminarGroup, app *pocketbase.PocketBase) (model.Events, error) { var toBeSavedEvents []struct { model.Event string } - var savedRecords []*models.Record - var insertRecords []*models.Record - + var savedRecords model.Events // check if event is already in database and add to toBeSavedEvents if not for _, seminarGroup := range seminarGroup { for _, event := range seminarGroup.Events { @@ -34,32 +30,13 @@ func SaveEvents(seminarGroup []model.SeminarGroup, collection *models.Collection // create record for each event that's not already in the database for _, event := range toBeSavedEvents { - record := models.NewRecord(collection) - record.Set("Day", event.Day) - record.Set("Week", event.Week) - record.Set("Start", event.Start) - record.Set("End", event.End) - record.Set("Name", event.Name) - record.Set("EventType", event.EventType) - record.Set("Prof", event.Prof) - record.Set("Rooms", event.Rooms) - record.Set("Notes", event.Notes) - record.Set("BookedAt", event.BookedAt) - record.Set("course", event.string) - record.Set("semester", event.Semester) - insertRecords = append(insertRecords, record) - } - // save all records - for _, record := range insertRecords { - if record != nil { - err := app.Dao().SaveRecord(record) - if err == nil { - savedRecords = append(savedRecords, record) - } else { - log.Println("Error while saving record: ", err) - return nil, err - } + // auto mapping for event fields to record fields + err := app.Dao().Save(&event) + if err != nil { + return nil, err + } else { + savedRecords = append(savedRecords, &event.Event) } } diff --git a/backend/service/events/eventService.go b/backend/service/events/eventService.go index 450ae43..5f589fe 100644 --- a/backend/service/events/eventService.go +++ b/backend/service/events/eventService.go @@ -90,11 +90,6 @@ func UpdateModulesForCourse(app *pocketbase.PocketBase, course string) error { seminarGroups := fetch.GetSeminarGroupsEventsFromHTML(courses) - collection, dbError := db.FindCollection(app, "events") - if dbError != nil { - return apis.NewNotFoundError("Collection not found", dbError) - } - seminarGroups = fetch.ClearEmptySeminarGroups(seminarGroups) seminarGroups = fetch.ReplaceEmptyEventNames(seminarGroups) @@ -120,7 +115,7 @@ func UpdateModulesForCourse(app *pocketbase.PocketBase, course string) error { //if there are no events in the database, save the new events if len(events) == 0 { - _, dbError = db.SaveEvents(seminarGroups, collection, app) + _, dbError := db.SaveEvents(seminarGroups, app) if dbError != nil { return apis.NewNotFoundError("Events could not be saved", dbError) } @@ -146,7 +141,7 @@ func UpdateModulesForCourse(app *pocketbase.PocketBase, course string) error { } //save the new events - _, dbError = db.SaveEvents(seminarGroups, collection, app) + _, dbError := db.SaveEvents(seminarGroups, app) if dbError != nil { return apis.NewNotFoundError("Events could not be saved", dbError) } diff --git a/backend/service/fetch/fetchSeminarEventService.go b/backend/service/fetch/fetchSeminarEventService.go index 24e6baa..6696a91 100644 --- a/backend/service/fetch/fetchSeminarEventService.go +++ b/backend/service/fetch/fetchSeminarEventService.go @@ -23,16 +23,11 @@ func GetSeminarEvents(c echo.Context, app *pocketbase.PocketBase) error { seminarGroups := GetSeminarGroupsEventsFromHTML(seminarGroupsLabel) - collection, dbError := db.FindCollection(app, "events") - if dbError != nil { - return apis.NewNotFoundError("Collection not found", dbError) - } - seminarGroups = ClearEmptySeminarGroups(seminarGroups) seminarGroups = ReplaceEmptyEventNames(seminarGroups) - savedRecords, dbError := db.SaveEvents(seminarGroups, collection, app) + savedRecords, dbError := db.SaveEvents(seminarGroups, app) if dbError != nil { return apis.NewNotFoundError("Events could not be saved", dbError)