Utilização do <po-lookup>

Estou tentando utilizar o po-lookup, porém o exemplo que temos no site (https://po-ui.io/documentation/po-lookup) utiliza de uma URL aberta (https://po-sample-api.onrender.com/v1/heroes)

Porem desejo utilizar minha API Advpl, com retorno deste formato:

{
    "CODIGO": 200,
    "INFO": "Retornando dados da consulta",
    "Retorno": {
        "Consulta": [
            {
                "H1_CODIGO": "100101",
                "H1_DESCRI": "40 - PERFILADEIRA PR 200 I"
            },
            {
                "H1_CODIGO": "100102",
                "H1_DESCRI": "50 - PERFILADEIRA PR 200 II"
            },
            ...

Tambem estou utilizando um método para gerenciar as Requisições HTTP

get<T>(endpoint: string, username: string, password: string): Observable<T> {
    const url = this.getFullUrl(endpoint);
    const headers = new HttpHeaders({
      'Authorization': 'Basic ' + btoa(`${username}:${password}`),
    });
    return this.httpClient.get<T>(url, { headers }).pipe(
      tap(response => console.log('Angular GET Response:', response)),
      catchError(error => {
        return EMPTY;
      })
    );
  }

Como não conseguirei utilizar diretamente uma URL, estou tentando chamar uma função no [p-filter-service]

<po-lookup
name="lookup"
class="po-md-3"
p-field-label="label"
p-field-value="value"
[p-filter-service]="getFilteredData.bind(this)"
 p-label="PO Lookup"
></po-lookup>
interface GPTItem {
  H1_CODIGO: string;
  H1_DESCRI: string;
}

getFilteredData() {
    const username = sessionStorage.getItem('username') || '';
    const password = sessionStorage.getItem('password') || '';

    return this.apiService.get('gpt', username, password).pipe(
      map((response: any) => {
        const items = response.Retorno.Consulta.map((item: GPTItem) => ({
          value: item.H1_CODIGO,
          label: item.H1_DESCRI
        }));
        return { items };
      })
    );
  }

Ja tentei utilizar diversos outros formatos neste getFilteredData(), mas não consigo evitar o erro

Type '() => Observable<{ items: any; }>' is not assignable to type 'string | PoLookupFilter'.

Alguem tem algum exemplo de como utilizar o componente com uma função sendo chamada pelo [p-filter-service] ?

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags poui lookup po-lookup consulta-padrao ou faça a sua própria pergunta.