feat(api): Add rules to /api/v2/instance

This commit is contained in:
Jesse Wierzbinski 2024-04-15 08:03:10 -10:00
parent 9e3e02cabd
commit 71d2c7ae3b
No known key found for this signature in database
7 changed files with 20 additions and 15 deletions

View file

@ -6,7 +6,8 @@
"node_modules/**/*", "node_modules/**/*",
"dist/**/*", "dist/**/*",
"packages/frontend/.output", "packages/frontend/.output",
"packages/frontend/.nuxt" "packages/frontend/.nuxt",
"glitch"
] ]
}, },
"linter": { "linter": {
@ -18,7 +19,8 @@
"node_modules/**/*", "node_modules/**/*",
"dist/**/*", "dist/**/*",
"packages/frontend/.output", "packages/frontend/.output",
"packages/frontend/.nuxt" "packages/frontend/.nuxt",
"glitch"
] ]
}, },
"formatter": { "formatter": {
@ -29,7 +31,8 @@
"node_modules/**/*", "node_modules/**/*",
"dist/**/*", "dist/**/*",
"packages/frontend/.output", "packages/frontend/.output",
"packages/frontend/.nuxt" "packages/frontend/.nuxt",
"glitch"
] ]
} }
} }

View file

@ -1,3 +1,4 @@
import { dualLogger } from "@loggers";
import { connectMeili } from "@meilisearch"; import { connectMeili } from "@meilisearch";
import { config } from "config-manager"; import { config } from "config-manager";
import { count } from "drizzle-orm"; import { count } from "drizzle-orm";
@ -5,7 +6,6 @@ import { LogLevel, LogManager, type MultiLogManager } from "log-manager";
import { db, setupDatabase } from "~drizzle/db"; import { db, setupDatabase } from "~drizzle/db";
import { status } from "~drizzle/schema"; import { status } from "~drizzle/schema";
import { createServer } from "~server"; import { createServer } from "~server";
import { dualLogger } from "@loggers";
const timeAtStart = performance.now(); const timeAtStart = performance.now();

View file

@ -1,7 +1,7 @@
import { join } from "node:path";
import { dualLogger } from "@loggers"; import { dualLogger } from "@loggers";
import { errorResponse } from "@response"; import { errorResponse } from "@response";
import { config } from "config-manager"; import { config } from "config-manager";
import { join } from "node:path";
import { import {
LogLevel, LogLevel,
type LogManager, type LogManager,

View file

@ -1,7 +1,7 @@
import { describe, expect, test } from "bun:test"; import { describe, expect, test } from "bun:test";
import { meta } from "./extended_description";
import { sendTestRequest } from "~tests/utils";
import { config } from "config-manager"; import { config } from "config-manager";
import { sendTestRequest } from "~tests/utils";
import { meta } from "./extended_description";
// /api/v1/instance/extended_description // /api/v1/instance/extended_description
describe(meta.route, () => { describe(meta.route, () => {

View file

@ -1,7 +1,7 @@
import { describe, expect, test } from "bun:test"; import { describe, expect, test } from "bun:test";
import { meta } from "./rules";
import { sendTestRequest } from "~tests/utils";
import { config } from "config-manager"; import { config } from "config-manager";
import { sendTestRequest } from "~tests/utils";
import { meta } from "./rules";
// /api/v1/instance/rules // /api/v1/instance/rules
describe(meta.route, () => { describe(meta.route, () => {

View file

@ -1,7 +1,7 @@
import { describe, expect, test } from "bun:test"; import { describe, expect, test } from "bun:test";
import { meta } from "./index";
import { sendTestRequest } from "~tests/utils";
import { config } from "config-manager"; import { config } from "config-manager";
import { sendTestRequest } from "~tests/utils";
import { meta } from "./index";
// /api/v2/instance // /api/v2/instance
describe(meta.route, () => { describe(meta.route, () => {

View file

@ -1,11 +1,10 @@
import { apiRoute, applyConfig } from "@api"; import { apiRoute, applyConfig } from "@api";
import { jsonResponse } from "@response"; import { jsonResponse } from "@response";
import { and, count, countDistinct, eq, gte, isNull } from "drizzle-orm"; import { and, countDistinct, eq, gte, isNull } from "drizzle-orm";
import { findFirstUser, userToAPI } from "~database/entities/User"; import { findFirstUser, userToAPI } from "~database/entities/User";
import { db } from "~drizzle/db"; import { db } from "~drizzle/db";
import { instance, status, user } from "~drizzle/schema"; import { status, user } from "~drizzle/schema";
import manifest from "~package.json"; import manifest from "~package.json";
import type { Instance as APIInstance } from "~types/mastodon/instance";
export const meta = applyConfig({ export const meta = applyConfig({
allowedMethods: ["GET"], allowedMethods: ["GET"],
@ -108,6 +107,9 @@ export default apiRoute(async (req, matchedRoute, extraData) => {
email: contactAccount?.email || null, email: contactAccount?.email || null,
account: contactAccount ? userToAPI(contactAccount) : null, account: contactAccount ? userToAPI(contactAccount) : null,
}, },
rules: [], rules: config.signups.rules.map((rule, index) => ({
id: String(index),
text: rule,
})),
}); });
}); });