kaneo (minimalist kanban) fork to experiment adding a tangled integration
github.com/usekaneo/kaneo
1import { Hono } from "hono";
2import { describeRoute, resolver, validator } from "hono-openapi";
3import * as v from "valibot";
4import { workspaceAccess } from "../utils/workspace-access-middleware";
5import getWorkspaceMembersCtrl from "./controllers/get-workspace-members";
6
7const workspace = new Hono<{
8 Variables: {
9 userId: string;
10 workspaceId: string;
11 };
12}>().get(
13 "/:workspaceId/members",
14 describeRoute({
15 operationId: "getWorkspaceMembers",
16 tags: ["Workspaces"],
17 description: "Get all members of a workspace",
18 responses: {
19 200: {
20 description: "List of workspace members",
21 content: {
22 "application/json": {
23 schema: resolver(
24 v.array(
25 v.object({
26 id: v.string(),
27 name: v.string(),
28 email: v.string(),
29 image: v.nullable(v.string()),
30 role: v.string(),
31 }),
32 ),
33 ),
34 },
35 },
36 },
37 },
38 }),
39 validator("param", v.object({ workspaceId: v.string() })),
40 workspaceAccess.fromParam("workspaceId"),
41 async (c) => {
42 const workspaceId = c.get("workspaceId");
43 const members = await getWorkspaceMembersCtrl(workspaceId);
44 return c.json(members);
45 },
46);
47
48export default workspace;