51 lines
1.5 KiB
Go
51 lines
1.5 KiB
Go
package soap
|
|
|
|
import (
|
|
"api-soap-facturacion/internal/config"
|
|
"api-soap-facturacion/internal/logger"
|
|
"api-soap-facturacion/internal/soap/api"
|
|
"api-soap-facturacion/internal/soap/api2"
|
|
factOp "api-soap-facturacion/internal/soap/facturacionOperaciones"
|
|
"time"
|
|
)
|
|
|
|
// Clients contiene todos los clientes SOAP disponibles
|
|
type Clients struct {
|
|
API1 api1.Client
|
|
API2 api2.Client
|
|
API_FACTURACION_OPERACION factOp.Client
|
|
}
|
|
|
|
// crea nuevos clientes SOAP para todas las APIs configuradas
|
|
func NewSoapClients(cfg *config.Config, log logger.Logger) *Clients {
|
|
soapLogger := log.With(logger.NewField("component", "soap_client"))
|
|
|
|
// Crear cliente para API1
|
|
api1Client := api1.NewClient(
|
|
cfg.Soap.APIs["api1"],
|
|
soapLogger.With(logger.NewField("api", "api1")),
|
|
)
|
|
|
|
// Crear cliente para API2
|
|
api2Client := api2.NewClient(
|
|
cfg.Soap.APIs["api2"],
|
|
soapLogger.With(logger.NewField("api", "api2")),
|
|
)
|
|
|
|
// Configurar opciones del cliente
|
|
options := &factOp.ClientOptions{
|
|
Timeout: 45 * time.Second,
|
|
// También puedes configurar un cliente HTTP personalizado si necesitas
|
|
// manejar proxies, certificados personalizados, etc.
|
|
}
|
|
|
|
// Registro Codigo Punto de Venta
|
|
apifactOperacion := factOp.NewClient(options, cfg.Soap.APIs["facturacionOperaciones"], soapLogger.With(logger.NewField("api", "registroPuntoVenta")))
|
|
|
|
return &Clients{
|
|
API1: api1Client,
|
|
API2: api2Client,
|
|
API_FACTURACION_OPERACION: *apifactOperacion,
|
|
}
|
|
}
|