diff options
Diffstat (limited to 'server/controllers/activitypub/inbox.ts')
-rw-r--r-- | server/controllers/activitypub/inbox.ts | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/server/controllers/activitypub/inbox.ts b/server/controllers/activitypub/inbox.ts index 79d989c2c..eee217650 100644 --- a/server/controllers/activitypub/inbox.ts +++ b/server/controllers/activitypub/inbox.ts | |||
@@ -1,26 +1,15 @@ | |||
1 | import * as express from 'express' | 1 | import * as express from 'express' |
2 | 2 | import { Activity, ActivityPubCollection, ActivityPubOrderedCollection, ActivityType, RootActivity } from '../../../shared' | |
3 | import { | ||
4 | processCreateActivity, | ||
5 | processUpdateActivity, | ||
6 | processFlagActivity | ||
7 | } from '../../lib' | ||
8 | import { | ||
9 | Activity, | ||
10 | ActivityType, | ||
11 | RootActivity, | ||
12 | ActivityPubCollection, | ||
13 | ActivityPubOrderedCollection | ||
14 | } from '../../../shared' | ||
15 | import { | ||
16 | signatureValidator, | ||
17 | checkSignature, | ||
18 | asyncMiddleware | ||
19 | } from '../../middlewares' | ||
20 | import { logger } from '../../helpers' | 3 | import { logger } from '../../helpers' |
4 | import { isActivityValid } from '../../helpers/custom-validators/activitypub/activity' | ||
5 | import { processCreateActivity, processFlagActivity, processUpdateActivity } from '../../lib' | ||
6 | import { processAddActivity } from '../../lib/activitypub/process-add' | ||
7 | import { asyncMiddleware, checkSignature, signatureValidator } from '../../middlewares' | ||
8 | import { activityPubValidator } from '../../middlewares/validators/activitypub/activity' | ||
21 | 9 | ||
22 | const processActivity: { [ P in ActivityType ]: (activity: Activity) => Promise<any> } = { | 10 | const processActivity: { [ P in ActivityType ]: (activity: Activity) => Promise<any> } = { |
23 | Create: processCreateActivity, | 11 | Create: processCreateActivity, |
12 | Add: processAddActivity, | ||
24 | Update: processUpdateActivity, | 13 | Update: processUpdateActivity, |
25 | Flag: processFlagActivity | 14 | Flag: processFlagActivity |
26 | } | 15 | } |
@@ -30,7 +19,7 @@ const inboxRouter = express.Router() | |||
30 | inboxRouter.post('/', | 19 | inboxRouter.post('/', |
31 | signatureValidator, | 20 | signatureValidator, |
32 | asyncMiddleware(checkSignature), | 21 | asyncMiddleware(checkSignature), |
33 | // inboxValidator, | 22 | activityPubValidator, |
34 | asyncMiddleware(inboxController) | 23 | asyncMiddleware(inboxController) |
35 | ) | 24 | ) |
36 | 25 | ||
@@ -54,6 +43,9 @@ async function inboxController (req: express.Request, res: express.Response, nex | |||
54 | activities = [ rootActivity as Activity ] | 43 | activities = [ rootActivity as Activity ] |
55 | } | 44 | } |
56 | 45 | ||
46 | // Only keep activities we are able to process | ||
47 | activities = activities.filter(a => isActivityValid(a)) | ||
48 | |||
57 | await processActivities(activities) | 49 | await processActivities(activities) |
58 | 50 | ||
59 | res.status(204).end() | 51 | res.status(204).end() |