package procesar // //import ( // "daemonService/internal/models/obtencionCodigos" // "daemonService/internal/models/obtencionCodigos/request" // "daemonService/internal/models/obtencionCodigos/response" // oc "daemonService/internal/soap/obtencionCodigo" // "fmt" // "log" // "net/http" //) // //type ProcesarRegistroCufd struct { // CuisServiceModel obtencionCodigos.CuisServiceModel //} // //// instaciamos procesarRegistro //func NewProcesarRegistroCufd( // cuisServiceModel obtencionCodigos.CuisServiceModel, //) *ProcesarRegistroCufd { // return &ProcesarRegistroCufd{CuisServiceModel: cuisServiceModel} //} // //func (s *ProcesarRegistroCufd) CodigoProcesarRegistroCufd(solicitud request.SolicitudCuisCufd, cuisID int) (interface{}, error) { // //func codigoProcesarRegistro(s *obtencionCodigos.CuisServiceModel, solicitud request.SolicitudCuis, cuisID int) (interface{}, error) { // // log.Printf("Procesando código sistema: %s", solicitud.CodigoSistema) // // // 1. Generar solicitud SOAP // soapReq, err := codigoGenerarSOAPRequest(s.CuisServiceModel, solicitud) // if err != nil { // //return fmt.Errorf("error generando SOAP: %v", err) // fmt.Printf("error generando SOAP: %v", err) // } // // // 2. Enviar solicitud con reintentos CUIS // //resp, bodyBytes, err := s.enviarSOAPRequest(soapReq) // resp, bodyBytes, err := oc.CodigoEnviarSOAPRequest(s.CuisServiceModel, soapReq) // if err != nil { // fmt.Printf("error enviando SOAP: %v", err) // return nil, fmt.Errorf("error enviando SOAP: %v", err) // } // defer resp.Body.Close() // // // 3. Validar respuesta HTTP // if resp.StatusCode != http.StatusOK { // //return fmt.Errorf("código de estado HTTP inválido: %d", resp.StatusCode) // fmt.Printf("código de estado HTTP inválido: %d", resp.StatusCode) // } // // // 4. Parsear respuesta // //println("respuestaCUIS:", string(bodyBytes)) // respCuis, err := oc.CuisParsearRespSOAP[[]response.CuisResponse](&s.CuisServiceModel, bodyBytes) // if err != nil { // //return fmt.Errorf("error parseando respuesta: %v", err) // fmt.Printf("error parseando respuesta: %v", err) // } // return respCuis, nil //}