Merge branch '68-fix-event-update-bug-during-semester-change' into 'development'

Resolve "fix event update bug during semester change"

See merge request htwk-software/htwkalender!101
This commit is contained in:
Elmar Kresse
2025-03-08 22:49:52 +00:00
4 changed files with 17 additions and 2 deletions

View File

@ -213,6 +213,19 @@ func GetAllEventsForCourse(app *pocketbase.PocketBase, course string) (model.Eve
return events, nil
}
func GetAllEventsForCourseAndSemester(app *pocketbase.PocketBase, course string, semester string) (model.Events, error) {
var events model.Events
// get all events from event records in the events collection
err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("course = {:course} AND semester = {:semester}", dbx.Params{"course": course, "semester": semester})).All(&events)
if err != nil {
slog.Error("Error while getting events from database: ", "error", err)
return nil, fmt.Errorf("error while getting events from database for course %s", course)
}
return events, nil
}
func GetAllModulesForCourse(app *pocketbase.PocketBase, course string, semester string) (model.Events, error) {
var events model.Events

View File

@ -151,7 +151,7 @@ func (s *PocketBaseEventService) UpdateModulesForCourse(seminarGroup model.Semin
//if there are no events in the database, save the new events
//get all events for the course and the semester
dbEvents, err := db.GetAllEventsForCourse(s.app, seminarGroup.Course)
dbEvents, err := db.GetAllEventsForCourseAndSemester(s.app, seminarGroup.Course, seminarGroup.Semester)
if err != nil {
return nil, err
}
@ -197,7 +197,7 @@ func (s *PocketBaseEventService) UpdateModulesForCourse(seminarGroup model.Semin
return nil, err
}
slog.Info("Course: " + seminarGroup.Course + " - Event changes: " + strconv.FormatInt(int64(len(insertList)), 10) + " new events, " + strconv.FormatInt(int64(len(deleteList)), 10) + " deleted events")
slog.Info("Course: " + seminarGroup.Course + " [" + seminarGroup.Semester + "] - Events: " + strconv.FormatInt(int64(len(savedEvents)), 10) + " new, " + strconv.FormatInt(int64(len(deleteList)), 10) + " deleted" + ", " + strconv.FormatInt(int64(len(dbEvents)-len(deleteList)+len(savedEvents)), 10) + " total")
return savedEvents, nil
}

View File

@ -134,6 +134,7 @@ func parseSeminarGroup(result string) model.SeminarGroup {
University: findFirstSpanWithClass(table, "header-1-0-0").FirstChild.Data,
Course: course,
Events: events,
Semester: semester,
}
return seminarGroup
}

View File

@ -617,6 +617,7 @@ func Test_parseSeminarGroup(t *testing.T) {
want: model.SeminarGroup{
Course: "23SAM",
University: "HTWK Leipzig",
Semester: "ws",
Events: []model.Event{
{
UUID: "6ebe83db-f29e-5ddd-ae8f-8724b5ba8959",