import axios from 'axios'; import { Cookies } from 'react-cookie'; import cookie from 'cookie'; import moment from 'moment'; import jwt from 'jsonwebtoken'; import { cors } from '../../../lib/cors'; export default async function handler(req, res) { await cors(req, res); if(req.headers.cookie !== undefined) { const cookies = cookie.parse(req.headers?.cookie ? req.headers?.cookie : ""); if(cookies.jwt !== undefined && cookies.jwt !== null) { if(jwt.verify(cookies.jwt, process.env.JWT_SECRET_CLIENT)) { try { console.log("API", "file", "bitrix", "url", req.query.url); const url = req.query.url; const url_parser = new URL(url); const origins = JSON.parse(process.env.ORIGINS); if(origins.indexOf(url_parser.host) > -1) { axios.get(url, { responseType: 'arraybuffer', }) .then((bitrix_response) => { res.status(200).send(bitrix_response.data); }) .catch((error) => { console.error(error); res.status(500).send(); }); } else { console.error("API", "file", "bitrix", "url", "wrong URL for file downloading", url); res.status(403).send(); } } catch(e) { console.error(e); res.status(403).send(); } } } else { res.status(403).send(); } } }