From 8eafc9dd2de8b23db9e85df8f403e779326b9369 Mon Sep 17 00:00:00 2001 From: Elmar Kresse <18119527+masterElmar@users.noreply.github.com> Date: Wed, 18 Oct 2023 18:30:42 +0200 Subject: [PATCH] added batch sized of 100 modules for ical event requests --- backend/service/db/dbEvents.go | 26 ++++++++++++++----- .../fetch/fetchSeminarEventService_test.go | 1 - 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/backend/service/db/dbEvents.go b/backend/service/db/dbEvents.go index 8e58eb8..f763260 100644 --- a/backend/service/db/dbEvents.go +++ b/backend/service/db/dbEvents.go @@ -116,15 +116,27 @@ func buildIcalQueryForModules(modules []model.FeedCollection) dbx.Expression { // used for the ical feed func GetPlanForModules(app *pocketbase.PocketBase, modules []model.FeedCollection) model.Events { - var selectedModulesQuery = buildIcalQueryForModules(modules) - var events model.Events - // get all events from event records in the events collection - err := app.Dao().DB().Select("*").From("events").Where(selectedModulesQuery).All(&events) - if err != nil { - print("Error while getting events from database: ", err) - return nil + + // iterate over modules in 100 batch sizes + for i := 0; i < len(modules); i += 100 { + var moduleBatch []model.FeedCollection + + if i+100 > len(modules) { + moduleBatch = modules[i:] + } else { + moduleBatch = modules[i : i+100] + } + + var selectedModulesQuery = buildIcalQueryForModules(moduleBatch) + // get all events from event records in the events collection + err := app.Dao().DB().Select("*").From("events").Where(selectedModulesQuery).All(&events) + if err != nil { + print("Error while getting events from database: ", err) + return nil + } } + return events } diff --git a/backend/service/fetch/fetchSeminarEventService_test.go b/backend/service/fetch/fetchSeminarEventService_test.go index b3d95d4..3284402 100644 --- a/backend/service/fetch/fetchSeminarEventService_test.go +++ b/backend/service/fetch/fetchSeminarEventService_test.go @@ -16,7 +16,6 @@ func Test_extractSemesterAndYear(t *testing.T) { want string want1 string }{ - // TODO: Add test cases. { name: "Test 1", args: args{