76 lines
2.0 KiB
TypeScript
76 lines
2.0 KiB
TypeScript
import { z } from "zod";
|
|
import { registry } from "../registry.js";
|
|
import { bearer, json, okJson, errorEnvelope, standardErrors } from "../helpers.js";
|
|
import {
|
|
createProxyBodyValidation,
|
|
editProxyBodyValidation,
|
|
getProxyByIdParamValidation,
|
|
editProxyParamValidation,
|
|
deleteProxyParamValidation,
|
|
proxyResponseSchema,
|
|
} from "@/api/validation/proxyValidation.js";
|
|
|
|
const tags = ["proxies"];
|
|
|
|
registry.registerPath({
|
|
method: "post",
|
|
path: "/proxies",
|
|
tags,
|
|
summary: "Create a proxy for the caller's team",
|
|
security: bearer,
|
|
request: { body: { content: json(createProxyBodyValidation) } },
|
|
responses: { "200": okJson(proxyResponseSchema), ...standardErrors },
|
|
});
|
|
|
|
registry.registerPath({
|
|
method: "get",
|
|
path: "/proxies",
|
|
tags,
|
|
summary: "List all proxies on the instance (admin/superadmin)",
|
|
security: bearer,
|
|
responses: { "200": okJson(z.array(proxyResponseSchema)), ...standardErrors },
|
|
});
|
|
|
|
registry.registerPath({
|
|
method: "get",
|
|
path: "/proxies/team",
|
|
tags,
|
|
summary: "List proxies for the caller's team",
|
|
security: bearer,
|
|
responses: { "200": okJson(z.array(proxyResponseSchema)), ...standardErrors },
|
|
});
|
|
|
|
registry.registerPath({
|
|
method: "get",
|
|
path: "/proxies/{id}",
|
|
tags,
|
|
summary: "Get a proxy by id",
|
|
security: bearer,
|
|
request: { params: getProxyByIdParamValidation },
|
|
responses: { "200": okJson(proxyResponseSchema), ...standardErrors },
|
|
});
|
|
|
|
registry.registerPath({
|
|
method: "patch",
|
|
path: "/proxies/{id}",
|
|
tags,
|
|
summary: "Edit a proxy",
|
|
security: bearer,
|
|
request: { params: editProxyParamValidation, body: { content: json(editProxyBodyValidation) } },
|
|
responses: { "200": okJson(proxyResponseSchema), ...standardErrors },
|
|
});
|
|
|
|
registry.registerPath({
|
|
method: "delete",
|
|
path: "/proxies/{id}",
|
|
tags,
|
|
summary: "Delete a proxy",
|
|
security: bearer,
|
|
request: { params: deleteProxyParamValidation },
|
|
responses: {
|
|
"200": okJson(proxyResponseSchema),
|
|
"409": { description: "Proxy is in use by monitors or set as the global proxy", content: json(errorEnvelope) },
|
|
...standardErrors,
|
|
},
|
|
});
|