mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender-pwa.git
synced 2025-07-16 17:48:51 +02:00
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:
@ -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 {
|
||||||
|
@ -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) {
|
||||||
|
Reference in New Issue
Block a user