Comparar duas arrays

Estou criando um fluxo em que preciso comparar uma matriz criada no fluxo com os resultados provenientes de uma API. Segui alguns exemplos e consegui conectar a API e encontrar os itens na resposta. O que recebo são horários de pico de um calendário, e quero oferecer uma lista de opções ao usuário removendo esses horários de pico. Tentei o foreach, mas não consigo descobrir como ele funciona (isso é no RapidPro).

Por outro lado, qual é a maneira de adicionar itens a uma matriz?

1 curtida

Oieee, @Guillermo! Tudo bem?

Vou direcionar seu tópico para um de nossos desenvolvedores cognitivos, tá bem?
Mas antes, me manda o print do retorno da API que você quer conectar, para nos ajudar a entender!

Aguardo seu retorno :purple_heart:

Obrigado, va el print:

{
  "busy": [
    {
      "start": "2024-02-26T13:30:00.000Z",
      "end": "2024-02-26T13:45:00.000Z",
      "title": "Reunión de 15 min between Luis Malvarez and Pedro Juarez"
    },
    {
      "start": "2024-02-26T14:45:00.000Z",
      "end": "2024-02-26T15:00:00.000Z",
      "title": "Reunión de 15 min between Luis Malvarez and Chacho Peñaloza"
    },
    {
      "start": "2024-02-26T13:30:00.000Z",
      "end": "2024-02-26T13:45:00.000Z"
    },
    {
      "start": "2024-02-26T14:45:00.000Z",
      "end": "2024-02-26T15:00:00.000Z"
    },
    {
      "start": "2024-02-27T13:30:00.000Z",
      "end": "2024-02-27T13:45:00.000Z"
    },
    {
      "start": "2024-02-28T14:45:00.000Z",
      "end": "2024-02-28T15:00:00.000Z"
    },
    {
      "start": "2024-02-28T16:00:00.000Z",
      "end": "2024-02-28T16:30:00.000Z"
    }
  ],
  "timeZone": "America/La_Paz",
  "dateRanges": [
    {
      "start": "2024-02-26T13:00:00.000Z",
      "end": "2024-02-26T13:30:00.000Z"
    },
    {
      "start": "2024-02-26T13:45:00.000Z",
      "end": "2024-02-26T14:45:00.000Z"
    },
    {
      "start": "2024-02-26T15:00:00.000Z",
      "end": "2024-02-26T18:00:00.000Z"
    }
  ],
  "workingHours": [
    {
      "days": [
        1,
        2,
        3,
        4,
        5
      ],
      "startTime": 780,
      "endTime": 1080,
      "userId": 512464
    }
  ],
  "dateOverrides": [],
  "currentSeats": null
}

Preciso dos itens “busy”, principalmente os primeiros que incluem o título

1 curtida

Olá Guillermo, eu gostaria de entender um pouco melhor a sua dúvida, você precisa pegar dentro do retorno da sua api, todos os itens que estão dentro da parte “busy” ou somente os itens que possuem dentro de “busy”, o item “tittle” e depois você quer colocar esse itens em outra array já existente?

Discupa que es traducao automatica:

Minha ideia é ter uma lista/array de possíveis horários (9:00, 9:15, 9:30 etc.) e consultar a API para saber quais estão ocupados (os que têm título) e remover os ocupados da primeira lista para dar aos meus usuários uma opção.

Em seguida, se, por exemplo, em ocupado aparecer 9:15, remova-o da outra matriz para que ele não apareça nas opções.

Espero que você tenha entendido.

1 curtida

Olá, Guillermo para resolver isso você pode “pesquisar” dentro do webhook por exemplo da forma que tu pega o resultado @webhook.results.0.busy.0 ( aqui seria o primeiro resultado dentro de busy e você verificaria se no “title” possui um valor se existir um valor você exclui esse item que não lhe interessa e depois vai pesquisar no proximo item @webhook.results.0.busy.1 e assim por diante

1 curtida

Vou tentar explicar melhor o que quero fazer.

Tenho uma lista de horários disponíveis: 9:00, 9:30, etc. Acho que isso deveria ser escrito em um “Save Flow Result” em uma lista @(array(“9:00”, “9:30”,“10:00”)).

Depois, eu solicito ao usuário que escolha um dia, supomos o dia 10 de março. Então, busco com o webhook se tenho espaços ocupados.

O webhook me retorna essa informação dentro de busy.

Eu posso ler essa informação e saber quais horários estão ocupados, o que quero fazer é remover esses horários ocupados da lista anterior. Por exemplo, se o webhook me diz que as 9:30 estão ocupadas, meu array deve ficar: @(array(“9:00”, “10:00”)) e então eu vou poder oferecer ao meu usuário os espaços disponíveis.

1 curtida

¿Habrá alguna forma de hacerlo? (perdón el castellano)

Hola @Guillermo , ¿cómo estás? Hay una manera de hacerlo utilizando la lógica contraria. Tenemos un tema que enseña cómo hacer un contador: se utiliza para paginar todos los elementos de una matriz. En este caso, puedes agregar un filtro a la página solo aquellas que no tengan texto dentro del “Title”. Todas las opciones disponibles aparecerán para el usuario y podrá informar cuál quiere usando el formato de hora tt:mm. Si el usuario responde en este formato, puede crear una lista (oculta) nuevamente para que coincida con la respuesta del usuario y ver si está disponible en ese momento (verifique dos veces)

¿Te ayudé? En caso afirmativo, marque la solución aquí :white_check_mark: