import { z } from "zod"; import { createActionApiRoute } from "~/services/routeBuilders/apiBuilder.server"; import { SpaceService } from "~/services/space.server"; import { json } from "@remix-run/node"; const spaceService = new SpaceService(); // Schema for space ID parameter const SpaceParamsSchema = z.object({ spaceId: z.string(), }); const { loader } = createActionApiRoute( { params: SpaceParamsSchema, allowJWT: true, authorization: { action: "search", }, corsStrategy: "all", }, async ({ authentication, params }) => { const userId = authentication.userId; const { spaceId } = params; // Verify space exists and belongs to user const space = await spaceService.getSpace(spaceId, userId); if (!space) { return json({ error: "Space not found" }, { status: 404 }); } // Get statements in the space const statements = await spaceService.getSpaceStatements(spaceId, userId); return json({ deprecated: true, deprecationMessage: "This endpoint is deprecated. Use /api/v1/spaces/{spaceId}/episodes instead. Spaces now work with episodes directly.", newEndpoint: `/api/v1/spaces/${spaceId}/episodes`, statements, space: { uuid: space.uuid, name: space.name, statementCount: statements.length } }); } ); export { loader };