added batch sized of 100 modules for ical event requests

This commit is contained in:
Elmar Kresse
2023-10-18 18:30:42 +02:00
parent a7f5d3f1db
commit 8eafc9dd2d
2 changed files with 19 additions and 8 deletions

View File

@@ -116,15 +116,27 @@ func buildIcalQueryForModules(modules []model.FeedCollection) dbx.Expression {
// used for the ical feed // used for the ical feed
func GetPlanForModules(app *pocketbase.PocketBase, modules []model.FeedCollection) model.Events { func GetPlanForModules(app *pocketbase.PocketBase, modules []model.FeedCollection) model.Events {
var selectedModulesQuery = buildIcalQueryForModules(modules)
var events model.Events 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) // iterate over modules in 100 batch sizes
if err != nil { for i := 0; i < len(modules); i += 100 {
print("Error while getting events from database: ", err) var moduleBatch []model.FeedCollection
return nil
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 return events
} }

View File

@@ -16,7 +16,6 @@ func Test_extractSemesterAndYear(t *testing.T) {
want string want string
want1 string want1 string
}{ }{
// TODO: Add test cases.
{ {
name: "Test 1", name: "Test 1",
args: args{ args: args{