send-reject.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { ActivityFollow, ActivityReject } from '../../../../shared/models/activitypub'
  2. import { logger } from '../../../helpers/logger'
  3. import { MActor } from '../../../types/models'
  4. import { getLocalActorFollowRejectActivityPubUrl } from '../url'
  5. import { buildFollowActivity } from './send-follow'
  6. import { unicastTo } from './utils'
  7. function sendReject (followUrl: string, follower: MActor, following: MActor) {
  8. if (!follower.serverId) { // This should never happen
  9. logger.warn('Do not sending reject to local follower.')
  10. return
  11. }
  12. logger.info('Creating job to reject follower %s.', follower.url)
  13. const followData = buildFollowActivity(followUrl, follower, following)
  14. const url = getLocalActorFollowRejectActivityPubUrl(follower, following)
  15. const data = buildRejectActivity(url, following, followData)
  16. return unicastTo(data, following, follower.inboxUrl)
  17. }
  18. // ---------------------------------------------------------------------------
  19. export {
  20. sendReject
  21. }
  22. // ---------------------------------------------------------------------------
  23. function buildRejectActivity (url: string, byActor: MActor, followActivityData: ActivityFollow): ActivityReject {
  24. return {
  25. type: 'Reject',
  26. id: url,
  27. actor: byActor.url,
  28. object: followActivityData
  29. }
  30. }