import { defineEndpoint } from "@wrnexus/core"; import { SearchDirectorySchema } from "../schemas/search-directory.ts"; interface DirectoryUser { name: string; designation: string; } const ALL: DirectoryUser[] = [ { name: "Ajay", designation: "UI" }, { name: "Asha", designation: "Backend" }, { name: "Chen", designation: "UI" }, ]; /** * Schema-typed handler: input resolves to `{ name?: string }` from * SearchDirectorySchema, so the block's request shape is checked for real * (not against `unknown`, which the untyped-handler shape resolved to). */ export const POST = defineEndpoint<{ name?: string }, { users: DirectoryUser[] }>({ input: SearchDirectorySchema, description: "Case-insensitive substring search over the demo directory by name.", handler(input) { const needle = String(input.name ?? "").toLowerCase(); return { users: ALL.filter((user) => user.name.toLowerCase().includes(needle)) }; }, });