authsrv/src/routes/well-known/auth-node.ts

48 lines
961 B
TypeScript
Raw Normal View History

2023-07-22 17:54:32 +02:00
import { RouteOptions } from "fastify";
2023-07-23 03:06:24 +02:00
import { BASE_URL, DOMAIN } from "~/config.js";
import { Account } from "~/db/entities/account.js";
import LongmontDataSource from "~/db/index.js";
interface AuthNode {
api_base: string;
name_suffix: string;
software: {
name: string;
version: string;
source: string;
};
features: string[];
registrations: "open" | "approval" | "closed";
usage: {
users: number | null;
};
}
2023-07-22 17:54:32 +02:00
const route: RouteOptions = {
method: "GET",
url: "/.well-known/longmont/auth-node",
handler: async (_, res) => {
2023-07-23 03:06:24 +02:00
const userCount = await LongmontDataSource.getRepository(Account).count();
res.send({
api_base: BASE_URL,
name_suffix: DOMAIN,
software: {
name: "authsrv",
version: "0.1.0-dev",
source: "https://github.com/longmont-chat",
},
features: [],
registrations: "open",
usage: {
users: userCount,
},
} satisfies AuthNode);
2023-07-22 17:54:32 +02:00
res.status(204);
},
};
export default route;