feat:#16 added room ics api route

This commit is contained in:
Elmar Kresse
2024-10-25 00:16:02 +02:00
parent 3d41d9d6a4
commit 42172fb0a5
13 changed files with 505 additions and 6 deletions

View File

@@ -54,7 +54,7 @@ func Feed(app model.AppType, token string, userAgent string) (string, string, er
}
// Get all events for modules
events, err = htwkalenderGrpc.GetEvents(feed.Modules, app.GrpcClient)
events, err = htwkalenderGrpc.GetEventsByModules(feed.Modules, app.GrpcClient)
if err != nil {
return "", "", err
}
@@ -106,3 +106,23 @@ func CreateFeed(app model.AppType, modules []model.FeedCollection) (string, erro
return token, nil
}
func FeedRoom(app model.AppType, room string) (string, string, error) {
// Get all events for room
events, err := htwkalenderGrpc.GetEventsByRoom(room, app.GrpcClient)
if err != nil {
return "", "", err
}
// Sort events by start date
events.Sort()
// Generate one Hash for E-TAG from all events
etag := functions.HashString(events.String())
cal := GenerateIcalFeed(events, map[string]model.FeedCollection{}, "")
icalFeed := &model.FeedModel{Content: cal.Serialize(), ExpiresAt: model.JSONTime(time.Now().Add(expirationTime))}
return icalFeed.Content, etag, nil
}