iceshrimp-legacy/packages/backend/src/server/api/endpoints/page-push.ts
ThatOneCalculator abf47e54f3
clean up w/ rome
2023-01-16 11:19:20 -08:00

49 lines
1,010 B
TypeScript

import { publishMainStream } from "@/services/stream.js";
import { Users, Pages } from "@/models/index.js";
import define from "../define.js";
import { ApiError } from "../error.js";
export const meta = {
requireCredential: true,
secure: true,
errors: {
noSuchPage: {
message: "No such page.",
code: "NO_SUCH_PAGE",
id: "4a13ad31-6729-46b4-b9af-e86b265c2e74",
},
},
} as const;
export const paramDef = {
type: "object",
properties: {
pageId: { type: "string", format: "misskey:id" },
event: { type: "string" },
var: {},
},
required: ["pageId", "event"],
} as const;
export default define(meta, paramDef, async (ps, user) => {
const page = await Pages.findOneBy({ id: ps.pageId });
if (page == null) {
throw new ApiError(meta.errors.noSuchPage);
}
publishMainStream(page.userId, "pageEvent", {
pageId: ps.pageId,
event: ps.event,
var: ps.var,
userId: user.id,
user: await Users.pack(
user.id,
{ id: page.userId },
{
detail: true,
},
),
});
});