2025-05-17 11:36:26 -04:00

101 lines
3.0 KiB
Go

package obtencionCodigo
//import (
// "context"
// "daemonService/internal/models/obtencionCodigos/request"
// "encoding/json"
// "net/http"
//)
//
//// procesa la ejecución en modo cron
//func (s *ObtencionCodigoService) processCronMode(dbCtx context.Context) (interface{}, error) {
// empresasConCuis, err := s.GetEmpresasConCuisMinimal(dbCtx)
// if err != nil {
// return nil, s.LogError("Error al obtener empresas con CUIS: %v", err)
// }
//
// var lastResponse interface{}
// for _, ec := range empresasConCuis {
// s.LogMessage("Procesando empresa ID: %d", ec.ID)
//
// if len(ec.Cuis) == 0 {
// s.LogMessage("Empresa ID %d sin CUIS registrados", ec.ID)
// continue
// }
//
// for _, c := range ec.Cuis {
// s.LogMessage("Procesando CUIS ID: %d", c.Cuis_id)
//
// cuisRequest := s.buildCuisRequestFromEmpresa(ec)
// respCuis, err := codigoProcesarRegistro(&s.CuisServiceModel, cuisRequest, 0)
//
// if err != nil {
// s.LogError(logErrorProcessing, err, cuisRequest.CodigoSistema)
// continue
// }
//
// if err := s.actualizarRegistro(dbCtx, ec.ID, c.Cuis_id, cuisRequest, respCuis); err != nil {
// s.LogError("Error actualizando registro: %v", err)
// continue
// }
//
// lastResponse = respCuis
// }
// }
//
// return lastResponse, nil
//}
//
//// procesa la ejecución en modo API
//func (s *ObtencionCodigoService) processAPIMode(dbCtx context.Context, w http.ResponseWriter, req *http.Request) (interface{}, error) {
// cuisRequest, err := s.parseCuisRequest(w, req)
// if err != nil {
// return nil, err
// }
//
// if err := s.validateCuisRequest(cuisRequest); err != nil {
// return nil, s.LogError("Datos inválidos: %v", err)
// }
//
// respCuis, err := codigoProcesarRegistro(&s.CuisServiceModel, cuisRequest, 0)
// if err != nil {
// return nil, s.LogError(logErrorProcessing, err, cuisRequest.CodigoSistema)
// }
//
// if err := s.crearNuevoRegistro(dbCtx, cuisRequest, respCuis); err != nil {
// return nil, s.LogError("Error creando nuevo registro: %v", err)
// }
//
// return respCuis, nil
//}
//
//// parsea la solicitud de CUIS desde el body del request
//func (s *ObtencionCodigoService) parseCuisRequest(w http.ResponseWriter, req *http.Request) (request.SolicitudCuis, error) {
// var cuisRequest request.SolicitudCuis
//
// // Limitar el tamaño del body para prevenir ataques DoS
// req.Body = http.MaxBytesReader(w, req.Body, maxBodySize)
//
// decoder := json.NewDecoder(req.Body)
// decoder.DisallowUnknownFields() // Rechazar campos desconocidos
//
// if err := decoder.Decode(&cuisRequest); err != nil {
// return cuisRequest, s.LogError("Error al decodificar JSON: %v", err)
// }
//
// return cuisRequest, nil
//}
//
//// valida los datos de la solicitud CUIS
//func (s *ObtencionCodigoService) validateCuisRequest(request request.SolicitudCuis) error {
// if request.CodigoAmbiente == "" ||
// request.CodigoModalidad == "" ||
// request.CodigoPuntoVenta == "" ||
// request.CodigoSistema == "" ||
// request.CodigoSucursal == "" ||
// request.Nit == "" {
// return ErrAllFieldsRequired
// }
// return nil
//}