import { validateApiKey } from '../../utilities/api/auth';
export default async function (server) {
server.addHook('preHandler', async (request, reply) => {
const startTime = process.hrtime();
const apiKey = request.headers['x-api-key'];
const shopId = request.headers['x-shop-id'];
if (!apiKey || !shopId) {
const missingHeaders = [];
if (!apiKey) missingHeaders.push('x-api-key');
if (!shopId) missingHeaders.push('x-shop-id');
return reply.code(401).send({
error: `Missing required header${missingHeaders.length > 1 ? 's' : ''}: ${missingHeaders.join(' and ')}`
});
}
const validationStart = process.hrtime();
const isValid = await validateApiKey(request.api, apiKey, shopId);
const validationTime = process.hrtime(validationStart);
console.log('isValid => ', isValid);
if (!isValid) {
return reply.code(401).send({
error: 'Invalid API key or shop ID'
});
}
const totalTime = process.hrtime(startTime);
console.log(`Auth time: ${totalTime[0]}s ${totalTime[1] / 1000000}ms`);
console.log(`Validation time: ${validationTime[0]}s ${validationTime[1] / 1000000}ms`);
});
}
import { validateApiKey } from '../../utilities/api/auth';
export default async function (server) {
server.addHook('preHandler', async (request, reply) => {
const startTime = process.hrtime();
const apiKey = request.headers['x-api-key'];
const shopId = request.headers['x-shop-id'];
if (!apiKey || !shopId) {
const missingHeaders = [];
if (!apiKey) missingHeaders.push('x-api-key');
if (!shopId) missingHeaders.push('x-shop-id');
return reply.code(401).send({
error: `Missing required header${missingHeaders.length > 1 ? 's' : ''}: ${missingHeaders.join(' and ')}`
});
}
const validationStart = process.hrtime();
const isValid = await validateApiKey(request.api, apiKey, shopId);
const validationTime = process.hrtime(validationStart);
console.log('isValid => ', isValid);
if (!isValid) {
return reply.code(401).send({
error: 'Invalid API key or shop ID'
});
}
const totalTime = process.hrtime(startTime);
console.log(`Auth time: ${totalTime[0]}s ${totalTime[1] / 1000000}ms`);
console.log(`Validation time: ${validationTime[0]}s ${validationTime[1] / 1000000}ms`);
});
}