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