MCPcopy Create free account
hub / github.com/adcontextprotocol/adcp / createEventsRouter

Function createEventsRouter

server/src/routes/events.ts:213–2233  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

211 * - publicApiRouter: Public API routes (/api/events/*)
212 */
213export function createEventsRouter(): {
214 pageRouter: Router;
215 adminApiRouter: Router;
216 publicApiRouter: Router;
217} {
218 const pageRouter = Router();
219 const adminApiRouter = Router();
220 const publicApiRouter = Router();
221
222 // =========================================================================
223 // ADMIN PAGE ROUTES (mounted at /admin)
224 // =========================================================================
225
226 // Admin events management page
227 pageRouter.get("/events", requireAuth, requireAdmin, (req, res) => {
228 serveHtmlWithConfig(req, res, "admin-events.html").catch((err) => {
229 logger.error({ err }, "Error serving admin events page");
230 res.status(500).send("Internal server error");
231 });
232 });
233
234 // =========================================================================
235 // ADMIN API ROUTES (mounted at /api/admin/events)
236 // =========================================================================
237
238 // GET /api/admin/events - List all events (including drafts)
239 adminApiRouter.get("/", requireAuth, requireAdmin, async (req: Request, res: Response) => {
240 try {
241 const status = req.query.status as EventStatus | undefined;
242 const event_type = req.query.event_type as EventType | undefined;
243 const event_format = req.query.event_format as EventFormat | undefined;
244 const search = req.query.search as string | undefined;
245 const limit = req.query.limit ? parseInt(req.query.limit as string, 10) : undefined;
246 const offset = req.query.offset ? parseInt(req.query.offset as string, 10) : undefined;
247
248 const events = await eventsDb.listEvents({
249 status,
250 event_type,
251 event_format,
252 search,
253 limit,
254 offset,
255 include_invite_unlisted: true, // Admin sees all events regardless of visibility
256 });
257
258 res.json({ events });
259 } catch (error) {
260 logger.error({ err: error }, "Error listing events");
261 res.status(500).json({
262 error: "Failed to list events",
263 message: "An unexpected error occurred",
264 });
265 }
266 });
267
268 // POST /api/admin/events - Create a new event
269 adminApiRouter.post("/", requireAuth, requireAdmin, async (req: Request, res: Response) => {
270 try {

Callers 1

setupRoutesMethod · 0.85

Calls 15

awardPointsMethod · 0.95
checkAndAwardBadgesMethod · 0.95
serveHtmlWithConfigFunction · 0.85
validateSpeakersFunction · 0.85
notifyUserFunction · 0.85
sendDirectMessageFunction · 0.85
isLumaEnabledFunction · 0.85
extractLumaSlugFunction · 0.85
createEventFromLumaFunction · 0.85
getEventGuestsFunction · 0.85

Tested by

no test coverage detected