server/api/api/v1/instance/privacy_policy.ts
2025-03-22 18:04:47 +01:00

48 lines
1.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { apiRoute, auth } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { PrivacyPolicy as PrivacyPolicySchema } from "@versia/client/schemas";
import { markdownParse } from "~/classes/functions/status";
import { config } from "~/config.ts";
const route = createRoute({
method: "get",
path: "/api/v1/instance/privacy_policy",
summary: "View privacy policy",
description: "Obtain the contents of this servers privacy policy.",
externalDocs: {
url: "https://docs.joinmastodon.org/methods/instance/#privacy_policy",
},
tags: ["Instance"],
middleware: [
auth({
auth: false,
}),
],
responses: {
200: {
description: "Server privacy policy",
content: {
"application/json": {
schema: PrivacyPolicySchema,
},
},
},
},
});
export default apiRoute((app) =>
app.openapi(route, async (context) => {
const content = await markdownParse(
config.instance.privacy_policy_path?.content ??
"This instance has not provided any privacy policy.",
);
return context.json({
updated_at: new Date(
config.instance.privacy_policy_path?.file.lastModified ?? 0,
).toISOString(),
content,
});
}),
);