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.CeduladosByCedula(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.CeduladosByNameLastName(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.CeduladosByFTS(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.CeduladosByNameAndLocation(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, } }