Telefonia.Controller.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. const { BuscaFatura } = require("../Modules/saperx/circuitos");
  2. const IxcFactory = require("../core/ixc/Ixc.factory");
  3. const SaperxFactory = require("../core/saperx/Saperx.factory");
  4. const { Ramais } = require("../models/Ramais.model");
  5. module.exports = {
  6. Token: async function (req, res) {
  7. const { month_bill, id_sip } = req.body;
  8. await SaperxFactory.RefreshToken();
  9. res.json({ ok: "ok" });
  10. },
  11. BuscaPorIDs: async function (req, res) {
  12. var { busca } = req.body;
  13. // Use .query() para começar uma nova consulta
  14. const query = Ramais.query()
  15. .withGraphFetched("did")
  16. .withGraphFetched("ramais_franquias")
  17. .withGraphFetched("franquia");
  18. // Use .orWhere para adicionar as condições "like" nas colunas id, circuito e numero da tabela did
  19. query
  20. .joinRelated("did")
  21. .whereIn("ramais.id", busca);
  22. // Execute a consulta e envie a resposta quando terminar
  23. try {
  24. const ramais = await query;
  25. res.json({ ramais });
  26. } catch (error) {
  27. console.error(error);
  28. res.status(500).json({ error: "Ocorreu um erro ao buscar os ramais." });
  29. }
  30. },
  31. BuscaCircuitos: async function (req, res) {
  32. var { busca } = req.body;
  33. // Use .query() para começar uma nova consulta
  34. const query = Ramais.query()
  35. .withGraphFetched("did")
  36. .withGraphFetched("ramais_franquias");
  37. // Use .orWhere para adicionar as condições "like" nas colunas id, circuito e numero da tabela did
  38. query
  39. .joinRelated("did")
  40. .orWhere("ramais.id", "like", `%${busca}%`)
  41. .orWhere("ramais.nome", "like", `%${busca}%`)
  42. .orWhere("ramais.ramal", "like", `%${busca}%`)
  43. .orWhere("did.numero", "like", `%${busca}%`);
  44. // Execute a consulta e envie a resposta quando terminar
  45. try {
  46. const ramais = await query;
  47. res.json({ ramais });
  48. } catch (error) {
  49. console.error(error);
  50. res.status(500).json({ error: "Ocorreu um erro ao buscar os ramais." });
  51. }
  52. },
  53. VerCircuitos: async function (req, res) {
  54. var { busca } = req.body;
  55. // Use .query() para começar uma nova consulta
  56. const query = Ramais.query()
  57. .withGraphFetched("did")
  58. .withGraphFetched("ramais_franquias");
  59. // Use .orWhere para adicionar as condições "like" nas colunas id, circuito e numero da tabela did
  60. query
  61. .joinRelated("did")
  62. .orWhere("ramais.id", busca)
  63. .orWhere("ramais.nome", busca)
  64. .orWhere("ramais.ramal", busca)
  65. .orWhere("did.numero", busca);
  66. // Execute a consulta e envie a resposta quando terminar
  67. try {
  68. const ramais = await query;
  69. res.json({ ramais });
  70. } catch (error) {
  71. console.error(error);
  72. res.status(500).json({ error: "Ocorreu um erro ao buscar os ramais." });
  73. }
  74. },
  75. Circuitos: async function (req, res) {
  76. try {
  77. let { IdCliente } = req.body;
  78. if (!IdCliente) {
  79. return res.status(401).send({ msg: "Informacoes faltando!" });
  80. }
  81. var dados = await IxcFactory.BuscaTelefonia(IdCliente);
  82. var { id_sip } = dados.circuitos[2];
  83. var dados = await SaperxFactory.Buscacircuitos(id_sip);
  84. res.json({ dados });
  85. } catch (error) {
  86. console.log(error);
  87. return res.status();
  88. }
  89. },
  90. Fatura: async function (req, res) {
  91. const { month_bill, id_sip } = req.body;
  92. var dados = await BuscaFatura(id_sip, month_bill);
  93. res.json({ ok: "ok", dados: dados });
  94. },
  95. };