|
@@ -1,27 +1,10 @@
|
|
|
import * as express from 'express'
|
|
|
-import { Activity, ActivityPubCollection, ActivityPubOrderedCollection, ActivityType, RootActivity } from '../../../shared'
|
|
|
+import { Activity, ActivityPubCollection, ActivityPubOrderedCollection, RootActivity } from '../../../shared'
|
|
|
import { logger } from '../../helpers'
|
|
|
import { isActivityValid } from '../../helpers/custom-validators/activitypub/activity'
|
|
|
-import { processCreateActivity, processUpdateActivity, processUndoActivity } from '../../lib'
|
|
|
-import { processAcceptActivity } from '../../lib/activitypub/process/process-accept'
|
|
|
-import { processAddActivity } from '../../lib/activitypub/process/process-add'
|
|
|
-import { processAnnounceActivity } from '../../lib/activitypub/process/process-announce'
|
|
|
-import { processDeleteActivity } from '../../lib/activitypub/process/process-delete'
|
|
|
-import { processFollowActivity } from '../../lib/activitypub/process/process-follow'
|
|
|
+import { processActivities } from '../../lib/activitypub/process/process'
|
|
|
import { asyncMiddleware, checkSignature, localAccountValidator, signatureValidator } from '../../middlewares'
|
|
|
import { activityPubValidator } from '../../middlewares/validators/activitypub/activity'
|
|
|
-import { AccountInstance } from '../../models/account/account-interface'
|
|
|
-
|
|
|
-const processActivity: { [ P in ActivityType ]: (activity: Activity, inboxAccount?: AccountInstance) => Promise<any> } = {
|
|
|
- Create: processCreateActivity,
|
|
|
- Add: processAddActivity,
|
|
|
- Update: processUpdateActivity,
|
|
|
- Delete: processDeleteActivity,
|
|
|
- Follow: processFollowActivity,
|
|
|
- Accept: processAcceptActivity,
|
|
|
- Announce: processAnnounceActivity,
|
|
|
- Undo: processUndoActivity
|
|
|
-}
|
|
|
|
|
|
const inboxRouter = express.Router()
|
|
|
|
|
@@ -69,15 +52,3 @@ async function inboxController (req: express.Request, res: express.Response, nex
|
|
|
|
|
|
res.status(204).end()
|
|
|
}
|
|
|
-
|
|
|
-async function processActivities (activities: Activity[], inboxAccount?: AccountInstance) {
|
|
|
- for (const activity of activities) {
|
|
|
- const activityProcessor = processActivity[activity.type]
|
|
|
- if (activityProcessor === undefined) {
|
|
|
- logger.warn('Unknown activity type %s.', activity.type, { activityId: activity.id })
|
|
|
- continue
|
|
|
- }
|
|
|
-
|
|
|
- await activityProcessor(activity, inboxAccount)
|
|
|
- }
|
|
|
-}
|