Path: blob/master/src/packages/next/pages/api/v2/accounts/search.ts
1451 views
/*1Search for accounts matching a given query.23If user is signed in, then their account_id is used to prioritize the search.4*/56import userSearch from "@cocalc/server/accounts/search";7import type { User } from "@cocalc/server/accounts/search";8import getParams from "lib/api/get-params";910import { apiRoute, apiRouteOperation } from "lib/api";11import {12AccountSearchInputSchema,13AccountSearchOutputSchema,14} from "lib/api/schema/accounts/search";1516async function handle(req, res) {17try {18return res.json(await doUserSearch(req));19} catch (err) {20res.json({ error: err.message });21}22}2324async function doUserSearch(req): Promise<User[]> {25const { query } = getParams(req);26return await userSearch({ query });27}2829export default apiRoute({30search: apiRouteOperation({31method: "POST",32openApiOperation: {33tags: ["Accounts"],34},35})36.input({37contentType: "application/json",38body: AccountSearchInputSchema,39})40.outputs([41{42status: 200,43contentType: "application/json",44body: AccountSearchOutputSchema,45},46])47.handler(handle),48});495051