import define from "../../define.js"; import { ApiError } from "../../error.js"; import { Clips } from "../../../../models/index.js"; export const meta = { tags: [ "clips", "account" ], requireCredential: false, requireCredentialPrivateMode: true, kind: "read:account", errors: { noSuchClip: { message: "No such clip.", code: "NO_SUCH_CLIP", id: "c3c5fe33-d62c-44d2-9ea5-d997703f5c20" } }, res: { type: "object", optional: false, nullable: false, ref: "Clip" } }; export const paramDef = { type: "object", properties: { clipId: { type: "string", format: "misskey:id" } }, required: [ "clipId" ] }; export default define(meta, paramDef, async (ps, me)=>{ // Fetch the clip const clip = await Clips.findOneBy({ id: ps.clipId }); if (clip == null) { throw new ApiError(meta.errors.noSuchClip); } if (!clip.isPublic && (me == null || clip.userId !== me.id)) { throw new ApiError(meta.errors.noSuchClip); } return await Clips.pack(clip); });