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

60 lines
1.2 KiB
TypeScript

import define from "../../../define.js";
import { Ads } from "@/models/index.js";
import { ApiError } from "../../../error.js";
export const meta = {
tags: ["admin"],
requireCredential: true,
requireModerator: true,
errors: {
noSuchAd: {
message: "No such ad.",
code: "NO_SUCH_AD",
id: "b7aa1727-1354-47bc-a182-3a9c3973d300",
},
},
} as const;
export const paramDef = {
type: "object",
properties: {
id: { type: "string", format: "misskey:id" },
memo: { type: "string" },
url: { type: "string", minLength: 1 },
imageUrl: { type: "string", minLength: 1 },
place: { type: "string" },
priority: { type: "string" },
ratio: { type: "integer" },
expiresAt: { type: "integer" },
},
required: [
"id",
"memo",
"url",
"imageUrl",
"place",
"priority",
"ratio",
"expiresAt",
],
} as const;
export default define(meta, paramDef, async (ps, me) => {
const ad = await Ads.findOneBy({ id: ps.id });
if (ad == null) throw new ApiError(meta.errors.noSuchAd);
await Ads.update(ad.id, {
url: ps.url,
place: ps.place,
priority: ps.priority,
ratio: ps.ratio,
memo: ps.memo,
imageUrl: ps.imageUrl,
expiresAt: new Date(ps.expiresAt),
});
});