import define from "../../define.js"; import { ApiError } from "../../error.js"; import { Channels, ChannelFollowings } from "../../../../models/index.js"; import { publishUserEvent } from "../../../../services/stream.js"; export const meta = { tags: [ "channels" ], requireCredential: true, kind: "write:channels", errors: { noSuchChannel: { message: "No such channel.", code: "NO_SUCH_CHANNEL", id: "19959ee9-0153-4c51-bbd9-a98c49dc59d6" } } }; export const paramDef = { type: "object", properties: { channelId: { type: "string", format: "misskey:id" } }, required: [ "channelId" ] }; export default define(meta, paramDef, async (ps, user)=>{ const channel = await Channels.findOneBy({ id: ps.channelId }); if (channel == null) { throw new ApiError(meta.errors.noSuchChannel); } await ChannelFollowings.delete({ followerId: user.id, followeeId: channel.id }); publishUserEvent(user.id, "unfollowChannel", channel); });