160 lines
4.2 KiB
Go
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,
|
|
}
|
|
}
|