Merge branch '53-bug-merge-events-in-ical-feed' into 'main'

fix:#53 added empty events check

Closes #53

See merge request ekresse/htwkalender!50
This commit is contained in:
ekresse
2024-04-15 19:56:19 +00:00
2 changed files with 29 additions and 18 deletions

View File

@ -55,29 +55,33 @@ func ClearFeeds(db *daos.Dao, months int, clock localTime.Clock) {
func CombineEventsInFeed(events model.Events) model.Events { func CombineEventsInFeed(events model.Events) model.Events {
// Combine events with the same name, start, end and course // 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++ { for i := 1; i < len(events); i++ {
// check if the event is already in the combinedEvents // check if the event is already in the combinedEvents
alreadyInCombinedEvents := false alreadyInCombinedEvents := false
for j := 0; j < len(combinedEvents); j++ { for j := 0; j < len(combinedEvents); j++ {
if events[i].Name == combinedEvents[j].Name && if events[i].Name == combinedEvents[j].Name &&
events[i].Start == combinedEvents[j].Start && events[i].Start == combinedEvents[j].Start &&
events[i].End == combinedEvents[j].End && events[i].End == combinedEvents[j].End &&
events[i].Course == combinedEvents[j].Course { events[i].Course == combinedEvents[j].Course {
alreadyInCombinedEvents = true alreadyInCombinedEvents = true
combinedEvents[j].Notes = addNotesIfAlreadyRoomsAdded(events, combinedEvents, j, i) combinedEvents[j].Notes = addNotesIfAlreadyRoomsAdded(events, combinedEvents, j, i)
combinedEvents[j].Prof = combineProfs(events, i, combinedEvents, j) combinedEvents[j].Prof = combineProfs(events, i, combinedEvents, j)
combinedEvents[j].Rooms = combineRooms(events, i, combinedEvents, j) combinedEvents[j].Rooms = combineRooms(events, i, combinedEvents, j)
break break
}
}
if !alreadyInCombinedEvents {
combinedEvents = append(combinedEvents, events[i])
} }
} }
if !alreadyInCombinedEvents { return combinedEvents
combinedEvents = append(combinedEvents, events[i])
}
} }
return combinedEvents return model.Events{}
} }
func addNotesIfAlreadyRoomsAdded(events model.Events, combinedEvents model.Events, index2 int, index1 int) string { func addNotesIfAlreadyRoomsAdded(events model.Events, combinedEvents model.Events, index2 int, index1 int) string {

View File

@ -182,6 +182,13 @@ func TestCombineEventsInFeed(t *testing.T) {
}, },
}, },
}, },
{
name: "NoEventsInFeed",
args: args{
events: model.Events{},
},
want: model.Events{},
},
} }
for _, tt := range testCases { for _, tt := range testCases {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {