@atproto/api
Version:
Client library for atproto and Bluesky
26 lines (22 loc) • 717 B
text/typescript
import { ModerationDecision } from '../decision'
import { ModerationOpts, ModerationSubjectNotification } from '../types'
import { decideAccount } from './account'
import { decideProfile } from './profile'
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),
)
}