maximo tejeda e5d160da8c
All checks were successful
dev test / test (push) Successful in 39s
dev test / vulnCheck (push) Successful in 39s
dev test / Ci-Lint (push) Successful in 24s
FIRST COMMIT
2024-12-14 10:40:22 -04:00

160 lines
4.2 KiB
Go

package grpc
import (
"context"
"fmt"
"git.maximotejeda.com/maximo/cedulados/internal/application/core/domain"
"git.maximotejeda.com/maximo/cedulados/proto/golang/cedulados"
)
func (a Adapter) CeduladosByCedula(ctx context.Context, req *cedulados.QueryByCedulaRequest) (*cedulados.QueryResponse, error) {
cedula := &domain.Cedula{
MunCed: req.Cedula.MunCed,
SeqCed: req.Cedula.SeqCed,
VerCed: req.Cedula.VerCed,
}
c, err := a.api.ByCedula(ctx, cedula)
if err != nil {
return nil, err
}
cedulado := converCeduladoFromDomain(c)
if cedulado == nil {
return nil, fmt.Errorf("error nil structure")
}
return &cedulados.QueryResponse{Cedulado: cedulado}, nil
}
func (a Adapter) CeduladosGetByNameLastName(ctx context.Context, req *cedulados.QueryByNameLastNameRequest) (*cedulados.QueryMultipleResponse, error) {
cL, err := a.api.GetByNameLastName(ctx, req.Name, req.Apellido_1, req.Apellido_2, req.Page)
if err != nil {
return nil, err
}
list := &cedulados.QueryMultipleResponse{}
for _, it := range cL.Data {
c := converCeduladoFromDomain(it)
if c == nil {
continue
}
list.Cedulados =append(list.Cedulados, c)
}
list.Page = cL.Page
list.Total = int64(cL.Total)
return list, nil
}
func (a Adapter) CeduladosByFTS(ctx context.Context, req *cedulados.QueryByFTSRequest) (*cedulados.QueryMultipleResponse, error) {
cL, err := a.api.GetByFTS(ctx, req.Name, req.Page)
if err != nil {
return nil, err
}
list := &cedulados.QueryMultipleResponse{}
for _, it := range cL.Data {
c := converCeduladoFromDomain(it)
if c == nil {
continue
}
list.Cedulados =append(list.Cedulados, c)
}
list.Page = cL.Page
list.Total = int64(cL.Total)
return list, nil
}
func (a Adapter) CeduladosByNameAndLocation(ctx context.Context, req *cedulados.QueryByNamesLocationRequest) (*cedulados.QueryMultipleResponse, error) {
cL, err := a.api.ByNameAndLocation(ctx, req.Name, req.Apellido_1, req.Apellido_2, req.Municipio, req.Page)
if err != nil {
return nil, err
}
list := &cedulados.QueryMultipleResponse{}
for _, it := range cL.Data {
c := converCeduladoFromDomain(it)
if c == nil {
continue
}
list.Cedulados =append(list.Cedulados, c)
}
list.Page = cL.Page
list.Total = int64(cL.Total)
return list, nil
}
func (a Adapter) QueryFotoByCedula(ctx context.Context, req *cedulados.QueryFotoByCedulaRequest) (*cedulados.QueryFotoByCedulaResponse, error) {
cedula := domain.Cedula{
MunCed: req.Cedula.MunCed,
SeqCed: req.Cedula.SeqCed,
VerCed: req.Cedula.VerCed,
}
f, err := a.api.QueryFotoByCedula(ctx, &cedula)
if err != nil {
return nil, err
}
foto := cedulados.Foto{
MunCed: cedula.MunCed,
SeqCed: cedula.SeqCed,
VerCed: cedula.VerCed,
Foto: f.Imagen,
}
return &cedulados.QueryFotoByCedulaResponse{Foto: &foto}, nil
}
func (a Adapter) QueryFotoById(ctx context.Context, req *cedulados.QueryFotoByIdRequest) (*cedulados.QueryFotoByIdResponse, error) {
f, err := a.api.QueryFotoById(ctx, req.Id)
if err != nil {
return nil, err
}
foto := cedulados.Foto{
MunCed: f.MunCed,
SeqCed: f.SeqCed,
VerCed: f.VerCed,
Foto: f.Imagen,
}
return &cedulados.QueryFotoByIdResponse{Foto: &foto}, nil
}
func (a Adapter) QueryFotoAllCedulas(ctx context.Context, req *cedulados.QueryFotoAllCedulasRequest) (*cedulados.QueryFotoAllCedulasResponse, error) {
listDcedulas := []*domain.Cedula{}
for _, i := range req.Cedulas{
cedula := &domain.Cedula{
MunCed: i.MunCed,
SeqCed: i.SeqCed,
VerCed: i.VerCed,
}
listDcedulas = append(listDcedulas, cedula)
}
fL, err := a.api.QueryAllCedulas(ctx, listDcedulas)
if err != nil {
return nil, err
}
cFL := []*cedulados.Foto{}
for _, f := range fL{
foto := &cedulados.Foto{
MunCed: f.MunCed,
SeqCed: f.SeqCed,
VerCed: f.VerCed,
Foto: f.Imagen,
}
cFL = append(cFL, foto)
}
return &cedulados.QueryFotoAllCedulasResponse{Fotos: cFL}, nil
}
func converCeduladoFromDomain(c *domain.Cedulado)(converted *cedulados.Cedulado){
if c == nil {
return nil
}
return &cedulados.Cedulado{
Id: c.ID,
Nombres: c.Nombres,
Apellido_1: c.Apellido1,
Apellido_2: c.Apellido2,
Cedula: &cedulados.Cedula{
MunCed: c.MunCed,
SeqCed: c.SeqCed,
VerCed: c.VerCed,
},
Sexo: c.Sexo,
Direccion: c.Direccion,
Telefono: c.Telefono,
FechaNac: c.FechaNac,
}
}