1 import { doRequest, logger } from '../../../helpers'
2 import { ActivityPubHttpPayload, buildSignedRequestOptions, computeBody, maybeRetryRequestLater } from './activitypub-http-job-scheduler'
4 async function process (payload: ActivityPubHttpPayload, jobId: number) {
5 logger.info('Processing ActivityPub broadcast in job %d.', jobId)
7 const body = await computeBody(payload)
8 const httpSignatureOptions = await buildSignedRequestOptions(payload)
14 httpSignature: httpSignatureOptions
17 for (const uri of payload.uris) {
21 await doRequest(options)
23 await maybeRetryRequestLater(err, payload, uri)
28 function onError (err: Error, jobId: number) {
29 logger.error('Error when broadcasting ActivityPub request in job %d.', jobId, err)
30 return Promise.resolve()
33 function onSuccess (jobId: number) {
34 logger.info('Job %d is a success.', jobId)
35 return Promise.resolve()
38 // ---------------------------------------------------------------------------