maximo tejeda caf32678b5
Some checks failed
dev test / test (push) Failing after 14s
dev test / vulnCheck (push) Has been skipped
dev test / Ci-Lint (push) Has been skipped
ARMONIZE names
2024-12-15 15:18:32 -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) CeduladosGetByNameLastName(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)
}