Facturacion/daemonService/internal/services/utils/sincronizacionDatosUtil.go
2025-05-17 11:36:26 -04:00

126 lines
5.2 KiB
Go

package utils
import (
"daemonService/internal/models/sincronizacionDatos/response"
"daemonService/internal/soap"
"fmt"
)
func ProcesarRespuestaSincronizacion(tagName string, bodyBytes []byte) (interface{}, error) {
var err error
var respSincronizacion interface{}
switch tagName {
case "sincronizarActividades":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.ListaActividades, response.SoapEnvelopeActividad](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta ListaActividades: %v", err)
}
case "sincronizarFechaHora":
respSincronizacion, err = soap.ParsearRespuestaSOAPfechaHora[response.RespuestaFechaHora, response.SoapEnvelopeFechaHora](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta FechaHora: %v", err)
}
case "sincronizarListaMensajesServicios":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.MensajeServicio, response.SoapEnvelopeMensajeServicio](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta MensajeServicio: %v", err)
}
case "sincronizarListaLeyendasFactura":
respSincronizacion, err = soap.ParsearRespuestaSOAPIdentificador[[]response.LeyendaDetalle, response.SoapEnvelopeLeyendas](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta LeyendaDetalle: %v", err)
}
case "sincronizarListaProductosServicios":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.ProductoServicio, response.SoapEnvelopeProductoServicio](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta ProductoServicio: %v", err)
}
case "sincronizarParametricaMotivoAnulacion":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.MotivoAnulacion, response.SoapEnvelopeMotivoAnulacion](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta MotivoAnulacion: %v", err)
}
case "sincronizarParametricaTipoDocumentoIdentidad":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.TipoDocumento, response.SoapEnvelopeTipoDocumento](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta TipoDocumento: %v", err)
}
case "sincronizarParametricaTipoDocumentoSector":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.TipoSector, response.SoapEnvelopeTipoSector](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta TipoSector: %v", err)
}
case "sincronizarListaActividadesDocumentoSector":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.TipoActividadesSector, response.SoapEnvelopeTipoActividadesSector](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta TipoSctividadSector: %v", err)
}
case "sincronizarParametricaTipoEmision":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.TipoEmision, response.SoapEnvelopeTipoEmision](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta TipoEmision: %v", err)
}
case "sincronizarParametricaTiposFactura":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.TipoFactura, response.SoapEnvelopeTipoFactura](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta TiposFactura: %v", err)
}
case "sincronizarParametricaTipoMoneda":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.Moneda, response.SoapEnvelopeMoneda](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta Moneda: %v", err)
}
case "sincronizarParametricaTipoMetodoPago":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.MetodoPago, response.SoapEnvelopeMetodoPago](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta MetodoPago: %v", err)
}
case "sincronizarParametricaTipoPuntoVenta":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.PuntoVenta, response.SoapEnvelopePuntoVenta](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta PuntoVenta: %v", err)
}
case "sincronizarParametricaUnidadMedida":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.UnidadMedida, response.SoapEnvelopeUnidadMedida](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta UnidadMedida: %v", err)
}
case "sincronizarParametricaEventosSignificativos":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.EventoSignificativo, response.SoapEnvelopeEventoSignificativo](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta EventosSignificativos: %v", err)
}
case "sincronizarParametricaTipoHabitacion":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.TipoHabitacion, response.SoapEnvelopeTipoHabitacion](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta TipoHabitacion: %v", err)
}
case "sincronizarParametricaPaisOrigen":
respSincronizacion, err = soap.ParsearRespuestaSOAP[[]response.PaisOrigen, response.SoapEnvelopePaisOrigen](bodyBytes)
if err != nil {
return nil, fmt.Errorf("error parseando respuesta PaisOrigen: %v", err)
}
default:
return nil, fmt.Errorf("tag no reconocido: %s", tagName)
}
return respSincronizacion, nil
}