Fix tests
[oweals/peertube.git] / server / middlewares / activitypub.ts
index 7db84de9786b8cda3446a90bc47c8c1d824378e1..489396447cbaa9a52fabdb8198291a35437b9d1c 100644 (file)
@@ -2,16 +2,16 @@ import { eachSeries } from 'async'
 import { NextFunction, Request, RequestHandler, Response } from 'express'
 import { ActivityPubSignature } from '../../shared'
 import { isSignatureVerified, logger } from '../helpers'
-import { database as db } from '../initializers'
-import { ACTIVITY_PUB } from '../initializers/constants'
-import { fetchRemoteAccount, saveAccountAndServerIfNotExist } from '../lib/activitypub/account'
+import { ACCEPT_HEADERS, ACTIVITY_PUB } from '../initializers'
+import { fetchRemoteAccount, saveAccountAndServerIfNotExist } from '../lib/activitypub'
+import { AccountModel } from '../models/account/account'
 
 async function checkSignature (req: Request, res: Response, next: NextFunction) {
   const signatureObject: ActivityPubSignature = req.body.signature
 
   logger.debug('Checking signature of account %s...', signatureObject.creator)
 
-  let account = await db.Account.loadByUrl(signatureObject.creator)
+  let account = await AccountModel.loadByUrl(signatureObject.creator)
 
   // We don't have this account in our database, fetch it on remote
   if (!account) {
@@ -37,7 +37,8 @@ async function checkSignature (req: Request, res: Response, next: NextFunction)
 
 function executeIfActivityPub (fun: RequestHandler | RequestHandler[]) {
   return (req: Request, res: Response, next: NextFunction) => {
-    if (req.accepts(ACTIVITY_PUB.POTENTIAL_ACCEPT_HEADERS) === false) {
+    const accepted = req.accepts(ACCEPT_HEADERS)
+    if (accepted === false || ACTIVITY_PUB.POTENTIAL_ACCEPT_HEADERS.indexOf(accepted) === -1) {
       return next()
     }