summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/admin/ad/create.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints/admin/ad/create.ts')
-rw-r--r--src/server/api/endpoints/admin/ad/create.ts45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/server/api/endpoints/admin/ad/create.ts b/src/server/api/endpoints/admin/ad/create.ts
new file mode 100644
index 0000000000..7777e95e6e
--- /dev/null
+++ b/src/server/api/endpoints/admin/ad/create.ts
@@ -0,0 +1,45 @@
+import $ from 'cafy';
+import define from '../../../define';
+import { Ads } from '../../../../../models';
+import { genId } from '@/misc/gen-id';
+
+export const meta = {
+ tags: ['admin'],
+
+ requireCredential: true as const,
+ requireModerator: true,
+
+ params: {
+ url: {
+ validator: $.str.min(1)
+ },
+ memo: {
+ validator: $.str
+ },
+ place: {
+ validator: $.str
+ },
+ priority: {
+ validator: $.str
+ },
+ expiresAt: {
+ validator: $.num.int()
+ },
+ imageUrl: {
+ validator: $.str.min(1)
+ }
+ },
+};
+
+export default define(meta, async (ps) => {
+ await Ads.insert({
+ id: genId(),
+ createdAt: new Date(),
+ expiresAt: new Date(ps.expiresAt),
+ url: ps.url,
+ imageUrl: ps.imageUrl,
+ priority: ps.priority,
+ place: ps.place,
+ memo: ps.memo,
+ });
+});