refactor: rewrite ke codebase lama
This commit is contained in:
Executable
+44
@@ -0,0 +1,44 @@
|
||||
const axios = require('axios');
|
||||
const path = require('path');
|
||||
const { deleteFileIfExists } = require('../helpers/utils/fileHelper');
|
||||
const { response } = require('../helpers/utils/wrapper');
|
||||
const { SUCCESS, ERROR } = require('../helpers/http-status/status_code');
|
||||
|
||||
const verifyRecaptcha = async (req, res, next) => {
|
||||
const recaptchaToken = req.body?.['g-recaptcha-response'] || req.query?.['g-recaptcha-response'];
|
||||
|
||||
const cv = req.files.cv?.[0]?.filename;
|
||||
const pdf = req.files.portofolio?.[0]?.filename;
|
||||
const files = [cv, pdf];
|
||||
|
||||
if (!recaptchaToken) {
|
||||
await deleteFiles(files);
|
||||
return response(res, "fail", { err: 'Recaptcha token is missing' }, "Recaptcha Verification Failed", ERROR.BAD_REQUEST);
|
||||
}
|
||||
|
||||
try {
|
||||
const secretKey = process.env.RECAPTCHA_SECRET_KEY;
|
||||
const response = await axios.post(
|
||||
`https://www.google.com/recaptcha/api/siteverify?secret=${secretKey}&response=${recaptchaToken}`
|
||||
)
|
||||
if (!response.data.success) {
|
||||
await deleteFiles(files);
|
||||
return res.status(400).json({ message: 'Recaptcha verification failed' });
|
||||
}
|
||||
return next();
|
||||
} catch (error) {
|
||||
console.error('Recaptcha verification error:', error);
|
||||
res.status(500).json({ message: 'Recaptcha verification failed' });
|
||||
}
|
||||
};
|
||||
|
||||
async function deleteFiles(files) {
|
||||
for (const file of files) {
|
||||
if (file) {
|
||||
const fileName = path.basename(`/uploads/${file}`);
|
||||
await deleteFileIfExists(fileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = verifyRecaptcha;
|
||||
Reference in New Issue
Block a user