maximo tejeda 55828eb52c
All checks were successful
dev test / test (push) Successful in 12s
dev test / vulnCheck (push) Successful in 29s
dev test / Ci-Lint (push) Successful in 17s
${{ github.actor }} executed Build Push Prod / build (push) Successful in 4m10s
${{ github.actor }} executed Build Push Prod / deploy (push) Successful in 19s
FIX
2024-12-15 15:24:21 -04:00

62 lines
2.1 KiB
Go

package api
import (
"context"
"log/slog"
"git.maximotejeda.com/maximo/cedulados/internal/application/core/domain"
"git.maximotejeda.com/maximo/cedulados/internal/ports"
)
type Application struct {
infoDB ports.DBPorts
fotoDB ports.DBPorts
log *slog.Logger
}
func NewApplication(infoDB, fotoDB ports.DBPorts) *Application {
log := slog.Default()
log = log.With("adapter", "application")
return &Application{
infoDB: infoDB,
fotoDB: fotoDB,
log: log,
}
}
// ByCedula
// Query db with a cedula complete info
func (a Application) CeduladosByCedula( ctx context.Context, cedula *domain.Cedula) (*domain.Cedulado, error) {
return a.infoDB.ByCedula(ctx, cedula)
}
// GetByNameLastName
// Query db by name, lastname
func (a Application) CeduladosByNameLastName(ctx context.Context, nombre, apellido1, apellido2 string, page int64) (*domain.MultipleResults, error) {
return a.infoDB.GetByNameLastName(ctx, nombre, apellido1, apellido2, page)
}
// GetByFTS
// make a full text search
func (a Application) CeduladosByFTS(ctx context.Context, parametros string, page int64) (*domain.MultipleResults, error) {
return a.infoDB.GetByFTS(ctx, parametros, page)
}
// ByNameAndLocation
// search coincidents names in a location
func (a Application) CeduladosByNameAndLocation(ctx context.Context, nombre, apellido1, apellido2, municipio string, page int64) (*domain.MultipleResults, error) {
return a.infoDB.ByNameAndLocation(ctx, nombre, apellido1, apellido2, municipio, page)
}
// QueryFotoByCedula
// query foto db with full cedula info
func (a Application) QueryFotoByCedula(ctx context.Context, cedula *domain.Cedula) (*domain.Foto, error) {
return a.fotoDB.QueryFotoByCedula(ctx, cedula)
}
// QueryFotoById
// knowing id of a record get the photo
func (a Application) QueryFotoById(ctx context.Context, id int64) (*domain.Foto, error) {
return a.fotoDB.QueryFotoById(ctx, id)
}
// QueryAllCedulas
// Query a list of cedulas
func (a Application) QueryAllCedulas(ctx context.Context, cedulas []*domain.Cedula) ([]*domain.Foto, error) {
return a.fotoDB.QueryAllCedulas(ctx, cedulas)
}