import express from 'express'; import bodyParser from 'body-parser'; import cors from 'cors'; import axios from 'axios'; import { dentroHorarioExpediente } from './utils.mjs'; const PORT = 3000; const app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cors()); // Rota para verificar status do dispositivo app.get('/status/:serialNumber', async (req, res) => { if (!dentroHorarioExpediente()) { return res.status(200).json({ error: "Fora do horĂ¡rio de expediente (07:30 - 17:30)", permitido: false }); } const { serialNumber } = req.params; let sendData = `tipo=verificarStatusEvo&sn=${serialNumber}`; let config = { method: 'post', maxBodyLength: Infinity, url: 'https://ponteiro.online/Painel/Ajax', headers: { 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Accept-Language': 'pt-BR,pt;q=0.9', 'Connection': 'keep-alive', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Origin': 'https://ponteiro.online', 'Referer': 'https://ponteiro.online/Painel/DispositivoFacial/GetColaboradores/AYTC09023967', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'same-origin', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest', 'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'Cookie': '_ga=GA1.2.1400579672.1762457415; _ga_CX37L3HT33=GS2.1.s1762517686$o2$g0$t1762517686$j60$l0$h0; PHPSESSID=55e0e1pes0u7hvida0eo9vgcf5; TawkConnectionTime=0; twk_uuid_5c87c6c4c37db86fcfcd5d3d=%7B%22uuid%22%3A%221.Ws3HlUz9SMuNtJ588HwbPzJoxT6Ym4uaMb2CeGR4vOCyNX03GtUb34AHmofIelEm6hiCzBPi89eDCX86ONCPS8NOzV3vKb4mzh5aV8aKL5EJJ8ibEkH4zsPka%22%2C%22version%22%3A3%2C%22domain%22%3A%22ponteiro.online%22%2C%22ts%22%3A1764702005679%7D; PHPSESSID=g2j2ktahk0ljcift84ultucl87' }, data: sendData }; try { const response = await axios.request(config); const data = response.data; if (data.ativo === true) { return res.status(200).json({ status: 'online', sn: data.sn }) } if (data.ativo === false) { return res.status(503).json({ status: 'offline', sn: data.sn }) } return res.status(500).json({ error: 'Resposta inesperada da API externa', data }) } catch (error) { console.error("Erro na API:", error); return res.status(500).json({ error: "Erro ao consultar API externa", details: error.message }); } }); app.listen(PORT, () => { console.log(`API rodando na porta ${PORT}`); });