@piggly/fastify-chassis
Version:
An ESM/CommonJS toolkit to help you to do common operations in your back-end applications with Fastify and NodeJS.
33 lines • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NonceBodyIssuerRoute = void 0;
/**
* 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>
*/
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) });
};
exports.NonceBodyIssuerRoute = NonceBodyIssuerRoute;
//# sourceMappingURL=NonceBodyIssuerRouter.js.map