package obtencionCodigo import ( "context" "daemonService/internal/handlers" "daemonService/internal/models/obtencionCodigos" service "daemonService/internal/services" "daemonService/internal/utils" "net/http" ) // maneja la obtención de CUIS type ObtencionCodigoService struct { Model obtencionCodigos.CuisServiceModel CuisService *service.CuisService CronHandler *handlers.CronHandler ApiHandler *handlers.APIHandler } // crea una nueva instancia del servicio func NewObtencionCodigoService( model obtencionCodigos.CuisServiceModel, cuisService *service.CuisService, cronHandler *handlers.CronHandler, apiHandler *handlers.APIHandler, ) *ObtencionCodigoService { return &ObtencionCodigoService{ Model: model, CuisService: cuisService, CronHandler: cronHandler, ApiHandler: apiHandler, } } // maneja la obtención de códigos CUIS func (s *ObtencionCodigoService) ExecuteGetCode(dbCtx context.Context, w http.ResponseWriter, req *http.Request, isCron bool) (interface{}, error) { s.CuisService.LogMessage(utils.LogServiceStart, s.GetName()) defer s.CuisService.LogMessage(utils.LogServiceEnd, s.GetName()) var respCuis interface{} var err error if isCron { respCuis, err = s.CronHandler.ProcessCronMode(dbCtx) } else { respCuis, err = s.ApiHandler.HandleAPIRequest(dbCtx, w, req) } if err != nil { return nil, err } return respCuis, nil } // GetName retorna el nombre del servicio func (s *ObtencionCodigoService) GetName() string { return s.Model.Name }