From 0e4a111f81cceed275d9bec2695f6e401fb654d8 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 12 Nov 2021 02:02:25 +0900 Subject: refactoring Resolve #7779 --- .../src/server/api/endpoints/clips/create.ts | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 packages/backend/src/server/api/endpoints/clips/create.ts (limited to 'packages/backend/src/server/api/endpoints/clips/create.ts') diff --git a/packages/backend/src/server/api/endpoints/clips/create.ts b/packages/backend/src/server/api/endpoints/clips/create.ts new file mode 100644 index 0000000000..02d2773709 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/clips/create.ts @@ -0,0 +1,45 @@ +import $ from 'cafy'; +import define from '../../define'; +import { genId } from '@/misc/gen-id'; +import { Clips } from '@/models/index'; + +export const meta = { + tags: ['clips'], + + requireCredential: true as const, + + kind: 'write:account', + + params: { + name: { + validator: $.str.range(1, 100) + }, + + isPublic: { + validator: $.optional.bool + }, + + description: { + validator: $.optional.nullable.str.range(1, 2048) + } + }, + + res: { + type: 'object' as const, + optional: false as const, nullable: false as const, + ref: 'Clip' + } +}; + +export default define(meta, async (ps, user) => { + const clip = await Clips.insert({ + id: genId(), + createdAt: new Date(), + userId: user.id, + name: ps.name, + isPublic: ps.isPublic, + description: ps.description, + }).then(x => Clips.findOneOrFail(x.identifiers[0])); + + return await Clips.pack(clip); +}); -- cgit v1.2.3-freya