UNPKG

@veramo/remote-server

Version:

Express.js module that can expose some agent methods and messaging endpoints

39 lines 1.44 kB
import { Router, text } from 'express'; /** * Creates a router for handling incoming messages. * * Messages posted to this router get sent to the `handleMessage` method of the associated agent where this is used. * * @param options - Initialization option * @returns Expressjs router * * @public */ export const MessagingRouter = (options) => { const router = Router(); router.use(text({ type: '*/*', limit: '10mb' })); router.post('/', async (req, res) => { try { const message = await req.agent?.handleMessage({ raw: req.body, metaData: [options.metaData], save: typeof options.save === 'undefined' ? true : options.save, }); const returnRouteResponse = message?.metaData?.find((v) => v.type === 'ReturnRouteResponse'); if (returnRouteResponse && returnRouteResponse.value) { const returnMessage = JSON.parse(returnRouteResponse.value); res.contentType(returnMessage.contentType).json(returnMessage.message); req.agent?.emit('DIDCommV2Message-sent', returnMessage.id); } else if (message) { res.json({ id: message.id }); } } catch (e) { console.error(e); res.status(400).send(e.message); } }); return router; }; //# sourceMappingURL=messaging-router.js.map