KI-AGENT: Ergänze Kalender-Abo für Mitarbeiterprofile
This commit is contained in:
@@ -1,8 +1,32 @@
|
||||
import { FastifyRequest, FastifyReply, FastifyInstance } from 'fastify';
|
||||
import { publicLinkService } from '../../modules/publiclinks.service';
|
||||
import dayjs from 'dayjs'; // Falls nicht installiert: npm install dayjs
|
||||
import { buildProfileCalendarSubscriptionFeed, loadProfileByCalendarSubscriptionToken } from '../../utils/calendarSubscription';
|
||||
|
||||
export default async function publiclinksNonAuthenticatedRoutes(server: FastifyInstance) {
|
||||
server.get("/api/public/calendar/subscriptions/:token.ics", async (req, reply) => {
|
||||
const { token } = req.params as { token: string }
|
||||
|
||||
try {
|
||||
const profile = await loadProfileByCalendarSubscriptionToken(server, token)
|
||||
|
||||
if (!profile || !profile.active) {
|
||||
return reply.code(404).send({ error: "Kalender-Abo nicht gefunden" })
|
||||
}
|
||||
|
||||
const icsFeed = await buildProfileCalendarSubscriptionFeed(server, profile)
|
||||
|
||||
reply.header("Content-Type", "text/calendar; charset=utf-8")
|
||||
reply.header("Content-Disposition", `inline; filename="fedeo-${profile.id}.ics"`)
|
||||
reply.header("Cache-Control", "private, max-age=300")
|
||||
|
||||
return reply.send(icsFeed)
|
||||
} catch (error: any) {
|
||||
server.log.error(error)
|
||||
return reply.code(500).send({ error: "Interner Server Fehler" })
|
||||
}
|
||||
})
|
||||
|
||||
server.get("/workflows/context/:token", async (req, reply) => {
|
||||
const { token } = req.params as { token: string };
|
||||
const pin = req.headers['x-public-pin'] as string | undefined;
|
||||
@@ -49,4 +73,4 @@ export default async function publiclinksNonAuthenticatedRoutes(server: FastifyI
|
||||
return reply.code(500).send({ error: "Fehler beim Speichern", details: error.message });
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user