55 lines
1.5 KiB
Go
55 lines
1.5 KiB
Go
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
|
|
}
|