fix:#16 added userAgent and fixed logging for room ical

This commit is contained in:
Elmar Kresse
2024-11-18 21:20:45 +01:00
parent 86a6820038
commit 4809192570
3 changed files with 6 additions and 7 deletions

View File

@@ -5,7 +5,6 @@ import (
"github.com/pocketbase/pocketbase" "github.com/pocketbase/pocketbase"
pb "htwkalender/common/genproto/modules" pb "htwkalender/common/genproto/modules"
"htwkalender/data-manager/service/db" "htwkalender/data-manager/service/db"
"log/slog"
) )
type RoomServiceHandler struct { type RoomServiceHandler struct {
@@ -19,9 +18,6 @@ func (s *RoomServiceHandler) GetRoomEvents(ctx context.Context, in *pb.GetRoomRe
"Protobuf - GetRoomEvents", "Protobuf - GetRoomEvents",
"room", in.Room, "room", in.Room,
) )
slog.Error("GetRoomEvents", "room", in.Room)
// get events from database by room // get events from database by room
events, err := db.GetRoomSchedule(s.app, in.Room) events, err := db.GetRoomSchedule(s.app, in.Room)
if err != nil { if err != nil {

View File

@@ -107,7 +107,7 @@ func CreateFeed(app model.AppType, modules []model.FeedCollection) (string, erro
return token, nil return token, nil
} }
func FeedRoom(app model.AppType, room string) (string, string, error) { func FeedRoom(app model.AppType, room string, userAgent string) (string, string, error) {
// Get all events for room // Get all events for room
events, err := htwkalenderGrpc.GetEventsByRoom(room, app.GrpcClient) events, err := htwkalenderGrpc.GetEventsByRoom(room, app.GrpcClient)
@@ -121,7 +121,7 @@ func FeedRoom(app model.AppType, room string) (string, string, error) {
// Generate one Hash for E-TAG from all events // Generate one Hash for E-TAG from all events
etag := functions.HashString(events.String()) etag := functions.HashString(events.String())
cal := GenerateIcalFeed(events, map[string]model.FeedCollection{}, "") cal := GenerateIcalFeed(events, map[string]model.FeedCollection{}, userAgent)
icalFeed := &model.FeedModel{Content: cal.Serialize(), ExpiresAt: model.JSONTime(time.Now().Add(expirationTime))} icalFeed := &model.FeedModel{Content: cal.Serialize(), ExpiresAt: model.JSONTime(time.Now().Add(expirationTime))}
return icalFeed.Content, etag, nil return icalFeed.Content, etag, nil

View File

@@ -123,8 +123,9 @@ func AddFeedRoutes(app model.AppType) {
app.Fiber.Get("/api/feed/room", func(c fiber.Ctx) error { app.Fiber.Get("/api/feed/room", func(c fiber.Ctx) error {
room := c.Query("id") room := c.Query("id")
ifNoneMatch := c.Get("If-None-Match") ifNoneMatch := c.Get("If-None-Match")
userAgent := c.Get("User-Agent")
results, etag, err := ical.FeedRoom(app, room) results, etag, err := ical.FeedRoom(app, room, userAgent)
if err != nil { if err != nil {
slog.Error("Failed to get feed", "error", err, "room", room) slog.Error("Failed to get feed", "error", err, "room", room)
return c.SendStatus(fiber.StatusNotFound) return c.SendStatus(fiber.StatusNotFound)
@@ -144,10 +145,12 @@ func AddFeedRoutes(app model.AppType) {
app.Fiber.Head("/api/feed", func(c fiber.Ctx) error { app.Fiber.Head("/api/feed", func(c fiber.Ctx) error {
return c.JSON(http.StatusOK, "") return c.JSON(http.StatusOK, "")
}) })
app.Fiber.Head("/api/feed/room", func(c fiber.Ctx) error { return c.JSON(http.StatusOK, "") })
app.Fiber.Add([]string{"PROPFIND"}, "/api/feed", func(c fiber.Ctx) error { app.Fiber.Add([]string{"PROPFIND"}, "/api/feed", func(c fiber.Ctx) error {
return c.JSON(http.StatusOK, "") return c.JSON(http.StatusOK, "")
}) })
app.Fiber.Add([]string{"PROPFIND"}, "/api/feed/room", func(c fiber.Ctx) error { return c.JSON(http.StatusOK, "") })
// Route for Thunderbird to get calendar server information // Route for Thunderbird to get calendar server information
// Response is a 200 OK without additional content // Response is a 200 OK without additional content