|
@@ -1,21 +1,22 @@
|
|
|
import { buscarAtendimentoOsPorId } from "./ixcIntegradorService.js";
|
|
import { buscarAtendimentoOsPorId } from "./ixcIntegradorService.js";
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+// status: "ok" | "sem_erp_protocolo" | "sem_ticket" | "erro"
|
|
|
|
|
+// contexto só é preenchido quando status === "ok"; erro só quando status === "erro"
|
|
|
export async function buscarContextoIxc(atendimento) {
|
|
export async function buscarContextoIxc(atendimento) {
|
|
|
const cliente = atendimento?.cliente;
|
|
const cliente = atendimento?.cliente;
|
|
|
- if (!cliente?.ErpProtocolo) return null;
|
|
|
|
|
|
|
+ if (!cliente?.ErpProtocolo) return { status: "sem_erp_protocolo", contexto: null, erro: null };
|
|
|
|
|
|
|
|
let tickets;
|
|
let tickets;
|
|
|
try {
|
|
try {
|
|
|
tickets = await buscarAtendimentoOsPorId(cliente.ErpProtocolo);
|
|
tickets = await buscarAtendimentoOsPorId(cliente.ErpProtocolo);
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
console.warn("[atendimentoIxcContextoService] buscarAtendimentoOsPorId falhou:", err.message);
|
|
console.warn("[atendimentoIxcContextoService] buscarAtendimentoOsPorId falhou:", err.message);
|
|
|
- return null;
|
|
|
|
|
|
|
+ return { status: "erro", contexto: null, erro: err.message };
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
const ticket = Array.isArray(tickets) ? tickets[0] : null;
|
|
const ticket = Array.isArray(tickets) ? tickets[0] : null;
|
|
|
- if (!ticket) return null;
|
|
|
|
|
|
|
+ if (!ticket) return { status: "sem_ticket", contexto: null, erro: null };
|
|
|
|
|
|
|
|
const osList = (ticket.os ?? []).map((os) => ({
|
|
const osList = (ticket.os ?? []).map((os) => ({
|
|
|
status: os.status ?? null,
|
|
status: os.status ?? null,
|
|
@@ -27,8 +28,12 @@ export async function buscarContextoIxc(atendimento) {
|
|
|
}));
|
|
}));
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
- clienteNome: ticket.cliente?.razao ?? null,
|
|
|
|
|
- ticketStatus: ticket.status ?? null,
|
|
|
|
|
- osList
|
|
|
|
|
|
|
+ status: "ok",
|
|
|
|
|
+ erro: null,
|
|
|
|
|
+ contexto: {
|
|
|
|
|
+ clienteNome: ticket.cliente?.razao ?? null,
|
|
|
|
|
+ ticketStatus: ticket.status ?? null,
|
|
|
|
|
+ osList
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|