test:#324 change eventService and fetch routine

This commit is contained in:
Elmar Kresse
2024-05-17 18:30:35 +00:00
parent 9b9909d389
commit ad197f366d
14 changed files with 102 additions and 73 deletions

View File

@@ -23,6 +23,7 @@ import (
"htwkalender/service/fetch/v1"
"htwkalender/service/functions"
"log/slog"
"strconv"
)
func GetModulesForCourseDistinct(app *pocketbase.PocketBase, course string, semester string) (model.Events, error) {
@@ -133,21 +134,13 @@ func UpdateModulesForCourse(app *pocketbase.PocketBase, course string) (model.Ev
//if there are no events in the database, save the new events
//get all events for the course and the semester
events, err := db.GetAllModulesForCourse(app, course, "ws")
dbEvents, err := db.GetAllEventsForCourse(app, course)
if err != nil {
return nil, err
}
// append all events for the course and the semester to the events array for ss
summerEvents, err := db.GetAllModulesForCourse(app, course, "ss")
if err != nil {
return nil, err
}
events = append(events, summerEvents...)
//if there are no events in the database, save the new events
if len(events) == 0 {
if len(dbEvents) == 0 {
events, dbError := db.SaveSeminarGroupEvents(seminarGroup, app)
if dbError != nil {
return nil, dbError
@@ -161,32 +154,33 @@ func UpdateModulesForCourse(app *pocketbase.PocketBase, course string) (model.Ev
// check which events are not already in the database and need to be inserted/saved
for _, event := range seminarGroup.Events {
if !ContainsEvent(events, event) {
if !ContainsEvent(dbEvents, event) {
insertList = append(insertList, event)
}
}
// save all events that are in the insertList
savedEvents, err := db.SaveEvents(insertList, app)
if err != nil {
slog.Error("Failed to save events: %v", err)
return nil, err
}
// check which events are in the database but not in the seminarGroup and need to be deleted
for _, event := range events {
if !ContainsEvent(seminarGroup.Events, event) {
deleteList = append(deleteList, event)
for _, dbEvent := range dbEvents {
if !ContainsEvent(seminarGroup.Events, dbEvent) {
deleteList = append(deleteList, dbEvent)
}
}
// delete all events that are in the deleteList
err = db.DeleteEvents(deleteList, app)
if err != nil {
slog.Error("Failed to delete events: %v", err)
slog.Error("Failed to delete events:", "error", err)
return nil, err
}
// save all events that are in the insertList
savedEvents, err := db.SaveEvents(insertList, app)
if err != nil {
slog.Error("Failed to save events: ", "error", err)
return nil, err
}
slog.Info("Course: " + course + " - Event changes: " + strconv.FormatInt(int64(len(insertList)), 10) + " new events, " + strconv.FormatInt(int64(len(deleteList)), 10) + " deleted events")
return savedEvents, nil
}