@atproto/api
Version:
Client library for atproto and Bluesky
26 lines (22 loc) • 729 B
text/typescript
import { ModerationDecision } from '../decision.js'
import { ModerationOpts, ModerationSubjectNotification } from '../types.js'
import { decideAccount } from './account.js'
import { decideProfile } from './profile.js'
export function decideNotification(
subject: ModerationSubjectNotification,
opts: ModerationOpts,
): ModerationDecision {
const acc = new ModerationDecision()
acc.setDid(subject.author.did)
acc.setIsMe(subject.author.did === opts.userDid)
if (subject.labels?.length) {
for (const label of subject.labels) {
acc.addLabel('content', label, opts)
}
}
return ModerationDecision.merge(
acc,
decideAccount(subject.author, opts),
decideProfile(subject.author, opts),
)
}