diff --git a/src/handlers/request-handlers/root-request-handler.ts b/src/handlers/request-handlers/root-request-handler.ts index 0e88bb8d..8c65b1f8 100644 --- a/src/handlers/request-handlers/root-request-handler.ts +++ b/src/handlers/request-handlers/root-request-handler.ts @@ -1,4 +1,5 @@ import { NextFunction, Request, Response } from 'express' +import accepts from 'accepts' import { path } from 'ramda' import { createSettings } from '../../factories/settings-factory' @@ -9,7 +10,7 @@ import packageJson from '../../../package.json' export const rootRequestHandler = (request: Request, response: Response, next: NextFunction) => { const settings = createSettings() - if (request.header('accept') === 'application/nostr+json') { + if (accepts(request).type(['application/nostr+json'])) { const { info: { name, description, pubkey: rawPubkey, contact, relay_url }, } = settings diff --git a/src/routes/index.ts b/src/routes/index.ts index 0e291f94..5a8a9ee4 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -1,3 +1,4 @@ +import accepts from 'accepts' import express from 'express' import { nodeinfo21Handler, nodeinfoHandler } from '../handlers/request-handlers/nodeinfo-handler' @@ -11,6 +12,13 @@ import { rootRequestHandler } from '../handlers/request-handlers/root-request-ha const router = express.Router() +router.use((req, res, next) => { + if (req.method === 'GET' && accepts(req).type(['application/nostr+json'])) { + return rootRequestHandler(req, res, next) + } + next() +}) + router.get('/', rootRequestHandler) router.get('/healthz', getHealthRequestHandler) router.get('/terms', getTermsRequestHandler)