@piggly/fastify-chassis
Version:
An ESM/CommonJS toolkit to help you to do common operations in your back-end applications with Fastify and NodeJS.
29 lines • 934 B
JavaScript
/**
* NonceBodyIssuerRoute is a route that issues a nonce as a body.
*
* On request body, you can send a number to issue that many nonces.
* E.g: { size: 3 }, by default it will issue 1 nonce.
*
* It will return a 200 status code and nonces as a body.
* E.g: { tokens: ['nonce1', 'nonce2', 'nonce3'] }
*
* @param {Object} deps
* @param {NonceTokenService} deps.NONCE_SERVICE
* @param {number} [ttl] The TTL of the nonce.
* @returns Route handler.
* @since 7.0.0
* @author Caique Araujo <caique@piggly.com.br>
*/
export const NonceBodyIssuerRoute = (deps, ttl = 3600) => async (request, reply) => {
let { size = 1 } = request.body;
if (typeof size !== 'number') {
size = parseInt(size, 10);
}
if (isNaN(size)) {
size = 1;
}
return reply
.status(200)
.send({ tokens: await deps.NONCE_SERVICE.issue(size, ttl) });
};
//# sourceMappingURL=NonceBodyIssuerRouter.js.map