]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/jobs/activitypub-http-job-scheduler/activitypub-http-unicast-handler.ts
Begin moving video channel to actor
[github/Chocobozzz/PeerTube.git] / server / lib / jobs / activitypub-http-job-scheduler / activitypub-http-unicast-handler.ts
index 8d3b755ad2d6accc2417d7325e4eb734bc2bbec8..f16cfcec3d898a7793bc3913eb6b9b9528f08960 100644 (file)
@@ -1,24 +1,24 @@
-import { logger } from '../../../helpers'
-import { doRequest } from '../../../helpers/requests'
-import { ActivityPubHttpPayload } from './activitypub-http-job-scheduler'
-import { database as db } from '../../../initializers/database'
-import { buildSignedActivity } from '../../../helpers/activitypub'
+import { doRequest, logger } from '../../../helpers'
+import { ActivityPubHttpPayload, computeBody, maybeRetryRequestLater } from './activitypub-http-job-scheduler'
 
 async function process (payload: ActivityPubHttpPayload, jobId: number) {
   logger.info('Processing ActivityPub unicast in job %d.', jobId)
 
-  const accountSignature = await db.Account.load(payload.signatureAccountId)
-  if (!accountSignature) throw new Error('Unknown signature account id.')
+  const body = await computeBody(payload)
 
-  const signedBody = await buildSignedActivity(accountSignature, payload.body)
   const uri = payload.uris[0]
   const options = {
     method: 'POST',
     uri,
-    json: signedBody
+    json: body
   }
 
-  await doRequest(options)
+  try {
+    await doRequest(options)
+  } catch (err) {
+    await maybeRetryRequestLater(err, payload, uri)
+    throw err
+  }
 }
 
 function onError (err: Error, jobId: number) {