New: LICENSEファイル / Del: package.json.license / Feat: setup/initializationでVAPIDを生成 / Fix: 全てのエンドポイントでsuccessをレスポンス / Chg: input_noneエラーを廃止。入力がない場合は{}として解決する / Feat: フロントエンドでserver-infoを読み込む
This commit is contained in:
@@ -32,14 +32,6 @@ try {
|
||||
fastify.setErrorHandler((err, req, res) => {
|
||||
res.header("Content-Type", "application/json");
|
||||
|
||||
if (err instanceof SyntaxError && /JSON/.test(err.message)) {
|
||||
return res.status(400).send(ErrorBase({
|
||||
bad: "client",
|
||||
code: "input_none",
|
||||
message: "入力がありません。",
|
||||
}));
|
||||
}
|
||||
|
||||
const customLogger = new Logger("Unknown(Error handler)");
|
||||
customLogger.error("Unknown error:", err);
|
||||
|
||||
@@ -127,12 +119,7 @@ try {
|
||||
|
||||
done(null, json);
|
||||
} catch (err) {
|
||||
if (err instanceof Error) {
|
||||
(err as any).statusCode = 400;
|
||||
done(err, undefined);
|
||||
} else {
|
||||
done(new Error("Invalid JSON"), undefined);
|
||||
}
|
||||
done(null, {});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ export default async function ServerInfo(fastify: FastifyInstance) {
|
||||
const userCount = await user.count();
|
||||
|
||||
return res.send({
|
||||
success: true,
|
||||
isInitialized: configCount > 0,
|
||||
isFirstAdminExists: userCount > 0,
|
||||
userCount,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { DatabaseError, ErrorBase, InputError } from "@/errors";
|
||||
import Logger from "@/lib/logger";
|
||||
import { ConfigEntity } from "@/modules/entities/Config";
|
||||
import type { FastifyInstance } from "fastify";
|
||||
import { generateVAPIDKeys } from "web-push";
|
||||
import z from "zod/v3";
|
||||
|
||||
export default function SetupInitialization(fastify: FastifyInstance) {
|
||||
@@ -46,6 +47,10 @@ export default function SetupInitialization(fastify: FastifyInstance) {
|
||||
|
||||
try {
|
||||
const entries = Object.entries(result.data).filter(([key]) => key !== "force");
|
||||
|
||||
const vapid = generateVAPIDKeys();
|
||||
entries.push(["VAPID_PUBLIC", vapid.publicKey]);
|
||||
entries.push(["VAPID_PRIVATE", vapid.privateKey]);
|
||||
|
||||
for (const [key, value] of entries) {
|
||||
const entity = await fastify.orm.em.getRepository(ConfigEntity).set(
|
||||
|
||||
Reference in New Issue
Block a user