diff options
Diffstat (limited to 'src/server/api/endpoints/admin/announcements/create.ts')
| -rw-r--r-- | src/server/api/endpoints/admin/announcements/create.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/server/api/endpoints/admin/announcements/create.ts b/src/server/api/endpoints/admin/announcements/create.ts new file mode 100644 index 0000000000..c1d48a7d38 --- /dev/null +++ b/src/server/api/endpoints/admin/announcements/create.ts @@ -0,0 +1,36 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { Announcements } from '../../../../../models'; +import { genId } from '../../../../../misc/gen-id'; + +export const meta = { + tags: ['admin'], + + requireCredential: true, + requireModerator: true, + + params: { + title: { + validator: $.str.min(1) + }, + text: { + validator: $.str.min(1) + }, + imageUrl: { + validator: $.nullable.str.min(1) + } + } +}; + +export default define(meta, async (ps) => { + const announcement = await Announcements.save({ + id: genId(), + createdAt: new Date(), + updatedAt: null, + title: ps.title, + text: ps.text, + imageUrl: ps.imageUrl, + }); + + return announcement; +}); |