apimegabolaounidosdasorte.dcontrol.com.br Open in urlscan Pro
64.31.47.126  Public Scan

Submitted URL: http://apimegabolaounidosdasorte.dcontrol.com.br/
Effective URL: https://apimegabolaounidosdasorte.dcontrol.com.br/
Submission: On December 20 via api from US — Scanned from FR

Form analysis 0 forms found in the DOM

Text Content

const express = require("express");
const cors = require('cors');
const bodyParser = require('body-parser');
const bolaoRoutes = require("./routes/bolaoRoute.js");
const apostaRoutes = require('./routes/apostaRoute.js');
const sorteioRoutes = require('./routes/sorteioRoute.js');
const usuarioRoutes = require('./routes/usuarioRoute.js');
const configRoutes = require('./routes/configRoute.js');
const pixRoutes = require('./routes/pixRoute.js');
const contatoRoutes = require('./routes/contatoRoute.js');
const regulamentoRoutes = require('./routes/regulamentoRoute.js');
const bannerRoutes = require('./routes/bannerRoute.js');
const coresRoutes = require('./routes/coresRoute.js');
const path = require("path");
const enviarEmail = require('./email/email.js');


const app = express();
app.use(express.json());
app.use(cors());
app.use(bodyParser.json());

app.use('/api/bolao', bolaoRoutes);
app.use('/api/aposta', apostaRoutes);
app.use('/api/sorteio', sorteioRoutes);
app.use('/api/usuario', usuarioRoutes);
app.use('/api/config', configRoutes);
app.use('/api/pix', pixRoutes);
app.use('/api/contato', contatoRoutes);
app.use('/api/regulamento', regulamentoRoutes);
app.use('/api/banner', bannerRoutes);
app.use('/api/cores', coresRoutes);

app.use(function (req, res, next) {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type');

  next();
});

app.use('/files', express.static(path.resolve(__dirname, "upload", "imagens")))

const upload = require('./upload/upload.js');
const { DATE } = require("sequelize");
const RelatorioApostas = require("./relatorios/relatorioApostas.js");
const RelatorioGanhadores = require("./relatorios/relatorioGanhadores.js");


app.post('/api/enviar-email', async (req, res) => {
  const mensagem = req.body.mensagem; // Verifique se a propriedade correta é "mensagem" (talvez seja diferente do que você definiu no frontend)
  const apostadorM = req.body.apostadorM;
  const conteudoHTML = req.body.conteudoHTML;
  try {
    // Enviar e-mail usando a função importada
    const info = await enviarEmail(mensagem, apostadorM, conteudoHTML);
    console.log('E-mail enviado com sucesso! ID: ' + info.messageId);
    res.json({ message: 'E-mail enviado com sucesso!' });
  } catch (error) {
    console.log('Erro ao enviar o e-mail: ' + error);
    res.status(500).json({ error: 'Erro ao enviar o e-mail.' });
  }
});



app.post('/api/upload', upload.single('imagem'), async (req, res) => {

  if (req.file) {
    const url = req.protocol + '://' + req.get('host') + '/upload/imagens/' + req.file.filename; // constrói a URL completa do arquivo
    return res.json({
      erro: false,
      mensagem: "upload realizado com sucesso",
      url: url
    });
  }

  return res.status(400).json({
    erro: true,
    mensagem: "Erro",
  })
});


app.post('/gerar-pdf/:idBolao/:tipoCriterio', async (req, res) => {
  const maxRetries = 5;
  let numRetries = 0;

  while (numRetries < maxRetries) {
    try {
      await RelatorioApostas(req, res);
      // Se a geração do PDF for bem-sucedida, saia do loop
      break;
    } catch (error) {
      numRetries++;
      console.error(`Erro ao gerar o relatório geral - Tentativa ${numRetries}/${maxRetries}`);
    }
  }

  if (numRetries >= maxRetries) {
    res.status(500).json({ error: 'Ocorreu um erro ao gerar o relatório geral após várias tentativas' });
  }
});

app.post('/gerar-pdf-ganhadores/:idBolao', async (req, res) => {
  const maxRetries = 2;
  let numRetries = 0;

  while (numRetries < maxRetries) {
    try {
      await RelatorioGanhadores(req, res);
      // Se a geração do PDF for bem-sucedida, saia do loop
      break;
    } catch (error) {
      numRetries++;
      console.error(`Erro ao gerar o relatório geral - Tentativa ${numRetries}/${maxRetries}`);
    }
  }

  if (numRetries >= maxRetries) {
    res.status(500).json({ error: 'Ocorreu um erro ao gerar o relatório geral após várias tentativas' });
  }
});


const atualizarPagamentoAposta = require("./services/aposta.service.js");



app.post('/api/receber-dados-mercado-pago', async (req, res) => {
  const jsonData = req.body;
  const action = jsonData.action;

  const data = jsonData.data;
 
 const idPagamento = jsonData['data']['id'];

  if (action === 'payment.updated') {

    await atualizarPagamentoAposta.atualizarPagamentoAutomatico(idPagamento)
  }

  res.status(200).send('JSON Recebido com Sucesso!');
});




app.listen(50006, function () {
  console.log('servidor rodando na porta:50006 ');
});