Estou tendo dificuldades em fazer uma tratativa do retorno do JSON abaixo:
{
"Profissionais": s
{
"Profissional": {
"Id": 10,
"Cpf": 12345678910,
"Nome": "Doutor Teste Andre",
"Numero": "9999999",
"TipoIdentidade": "CRM",
"LocalExpedicao": "PR"
}
},
{
"Profissional": {
"Id": 20,
"Cpf": 12345678911,
"Nome": "Doutor Teste Rodrigo",
"Numero": "8888888",
"TipoIdentidade": "CRM",
"LocalExpedicao": "PR"
}
}
]
}
Preciso pegar esses dois profissionais que retornar e apresentar em tela para o usuário selecionar, como abaixo:
Página 1 / 1
Bom dia @ryan.furlan !!! vc vai ter que criar um script para percorrer o json pegar os nomes e jogar dentro de um json que vc vai usar para mostrar um conteudo dinamico.
Qual a quantidade máxima de profissionais que pode aparecer? Esse bot está conectado ao whatsapp?
Sobre o script vc pode fazer algo do tipo:
function run(json) {
try {
if (typeof json != 'object') json = JSON.parse(json);
let profissionais = ]; json.Profissionais.forEach((profissional) => profissionais.push(profissional.Nome));
return profissionais;
} catch (e) {
return 'DebugErro: ' + e;
}
}
Pelo que eu vi vc esta fazendo isso usando um quickreply, vc tem que pegar o codigo dele em json
fazer um for percorrendo o seu json com os dados e ir criando esses atributos de options com os nomes que estao vindo no primeiro json e jogar dentro de options e depois chamar esse json que vc criou dentro de um componente
de conteudo dinamico, ai vc vai ter seu componente com os nomes igual ao qu quer na imagem
Galera fiz usando o conteúdo dinâmico e funcionou!
Ficou mais ou menos assim:
function run(result) { result = JSON.parse(result); result = result.Profissionais; var menulista = =]; result.forEach(function (item) { menulista.push({ "value": item.Profissional.Id, "text": item.Profissional.Nome }) }); return { "text": "Selecione o Profissional:", "options": menulista }; }
Ficando visualmente assim:
O text que está sendo repassado é o nome dos médicos, e o value é o ID de cada um, como faço para ter acesso ao ID quando o usuário escolher o pelo nome?
Despois desse bloco cria outro bloco de validação com uma função que recebe o json que vc criou e o input.content ai vc percorre o json com o valor do input.content quando achar vc pega o id e retorna ele na função ai vc sabe que id vc usou
O script pode ficar no mesmo bloco desde que esteja nas ações de saída.
Vc pode criar um script com um find.
Ex:
function run() {
try {
let arrayOpcoes = JSON.parse('{{arrayOpcoes}}'); //parse no json das opcoes da sua lista
let inputContent = '{{input.content}}'.split('\n').join(''); // tira quebras de linha caso existam no input do contato
const result = arrayOpcoes.find((opcao) => opcao.text.toLowerCase().includes(inputContent));
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.
A analisar o ficheiro em busca de vírus
Lamentamos, mas ainda estamos a analisar o conteúdo deste ficheiro, a fim de nos certificarmos de que o mesmo é seguro para descarregar. Agradecemos que tentes de novo dentro de poucos minutos.