diff --git a/backend/service/feed/feedFunctions.go b/backend/service/feed/feedFunctions.go index fba2c0a..050c5e2 100644 --- a/backend/service/feed/feedFunctions.go +++ b/backend/service/feed/feedFunctions.go @@ -55,29 +55,33 @@ func ClearFeeds(db *daos.Dao, months int, clock localTime.Clock) { func CombineEventsInFeed(events model.Events) model.Events { // Combine events with the same name, start, end and course - combinedEvents := model.Events{events[0]} + // check if there are events + if len(events) > 0 { + combinedEvents := model.Events{events[0]} - for i := 1; i < len(events); i++ { - // check if the event is already in the combinedEvents - alreadyInCombinedEvents := false + for i := 1; i < len(events); i++ { + // check if the event is already in the combinedEvents + alreadyInCombinedEvents := false - for j := 0; j < len(combinedEvents); j++ { - if events[i].Name == combinedEvents[j].Name && - events[i].Start == combinedEvents[j].Start && - events[i].End == combinedEvents[j].End && - events[i].Course == combinedEvents[j].Course { - alreadyInCombinedEvents = true - combinedEvents[j].Notes = addNotesIfAlreadyRoomsAdded(events, combinedEvents, j, i) - combinedEvents[j].Prof = combineProfs(events, i, combinedEvents, j) - combinedEvents[j].Rooms = combineRooms(events, i, combinedEvents, j) - break + for j := 0; j < len(combinedEvents); j++ { + if events[i].Name == combinedEvents[j].Name && + events[i].Start == combinedEvents[j].Start && + events[i].End == combinedEvents[j].End && + events[i].Course == combinedEvents[j].Course { + alreadyInCombinedEvents = true + combinedEvents[j].Notes = addNotesIfAlreadyRoomsAdded(events, combinedEvents, j, i) + combinedEvents[j].Prof = combineProfs(events, i, combinedEvents, j) + combinedEvents[j].Rooms = combineRooms(events, i, combinedEvents, j) + break + } + } + if !alreadyInCombinedEvents { + combinedEvents = append(combinedEvents, events[i]) } } - if !alreadyInCombinedEvents { - combinedEvents = append(combinedEvents, events[i]) - } + return combinedEvents } - return combinedEvents + return model.Events{} } func addNotesIfAlreadyRoomsAdded(events model.Events, combinedEvents model.Events, index2 int, index1 int) string { diff --git a/backend/service/feed/feedFunctions_test.go b/backend/service/feed/feedFunctions_test.go index 85a10e2..e35f3f8 100644 --- a/backend/service/feed/feedFunctions_test.go +++ b/backend/service/feed/feedFunctions_test.go @@ -182,6 +182,13 @@ func TestCombineEventsInFeed(t *testing.T) { }, }, }, + { + name: "NoEventsInFeed", + args: args{ + events: model.Events{}, + }, + want: model.Events{}, + }, } for _, tt := range testCases { t.Run(tt.name, func(t *testing.T) {