iceshrimp-legacy/packages/backend/src/server/api/endpoints/app/show.ts
ThatOneCalculator 7c2dabd047
no more eslint
2023-01-12 20:54:33 -08:00

48 lines
909 B
TypeScript

import define from "../../define.js";
import { ApiError } from "../../error.js";
import { Apps } from "@/models/index.js";
export const meta = {
tags: ["app"],
errors: {
noSuchApp: {
message: "No such app.",
code: "NO_SUCH_APP",
id: "dce83913-2dc6-4093-8a7b-71dbb11718a3",
},
},
res: {
type: "object",
optional: false,
nullable: false,
ref: "App",
},
} as const;
export const paramDef = {
type: "object",
properties: {
appId: { type: "string", format: "misskey:id" },
},
required: ["appId"],
} as const;
export default define(meta, paramDef, async (ps, user, token) => {
const isSecure = user != null && token == null;
// Lookup app
const ap = await Apps.findOneBy({ id: ps.appId });
if (ap == null) {
throw new ApiError(meta.errors.noSuchApp);
}
return await Apps.pack(ap, user, {
detail: true,
includeSecret: isSecure && ap.userId === user!.id,
});
});