import { createRoute } from "../../modules/api-utils/createRoute"; import { apiResponse } from "../../modules/api-utils/apiResponse"; import { ContentfulStatusCode } from "hono/utils/http-status"; import { authMiddleware } from "../middleware/authorization"; import { getMemberCache } from "../../modules/cw-utils/members/memberCache"; /* GET /v1/cw/members */ export default createRoute( "get", ["/members"], async (c) => { const cache = await getMemberCache(); const activeOnly = c.req.query("active") !== "false"; const members = cache .filter((m) => (activeOnly ? !m.inactiveFlag : true)) .map((m) => ({ id: m.id, identifier: m.identifier, firstName: m.firstName, lastName: m.lastName, name: `${m.firstName} ${m.lastName}`.trim(), officeEmail: m.officeEmail, inactive: m.inactiveFlag, })); const sorted = members.sort((a, b) => a.name.localeCompare(b.name)); const response = apiResponse.successful( "CW members fetched successfully!", sorted, ); return c.json(response, response.status as ContentfulStatusCode); }, authMiddleware(), );