Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix with nine number brazil #382

Merged

Conversation

yvescleuder
Copy link
Contributor

Existe cenários onde é utilizado no ChatWoot com numeros que não são providos pela EvolutionAPI.
Por exemplo, na Cloud API, os numeros utilizados estão com 9.
Quando envia uma nova mensagem para esses números utilizando a EvolutionAPI, a mensagem é enviada normalmente, mas quando recebe, é criado um novo contato, pois o número está sem o 9.
Com isso, fiz a implementação para buscar novamente o número caso for DDI do Brasil, não pode ser grupo e que tenha mais de 13 caracteres.
+55 XX X XXXXXXXX

Será feito a remoção do 9 e feito uma nova busca no Chatwoot.

@judsonjuniorr
Copy link
Contributor

Poderia implementar na query para já fazer a pesquisa com e sem o 9 dígito, diminuiria as regras lógicas necessárias e uma segunda consulta ao banco caso não exista :)

@yvescleuder
Copy link
Contributor Author

Poderia implementar na query para já fazer a pesquisa com e sem o 9 dígito, diminuiria as regras lógicas necessárias e uma segunda consulta ao banco caso não exista :)

Pode ser também, mas para isso preciso modificar o método search para o filter, pois o search não busca múltiplos números, vou fazer aqui e subir.

@yvescleuder
Copy link
Contributor Author

yvescleuder commented Jan 28, 2024

Fiz a alteração, preciso de uma ajuda para testar, não foi testado.
Obs: foi feito a busca em vários campos, pois o método "filter" por padrão ele já busca esses campos, então não queria tirar a implementação deles.

@DavidsonGomes
Copy link
Collaborator

Aguardando a validação e testes para aprovação

@DavidsonGomes DavidsonGomes merged commit 7dacd75 into EvolutionAPI:develop Jan 31, 2024
@yvescleuder
Copy link
Contributor Author

@DavidsonGomes chegou a fazer um teste? Não sei exatamente como testar a evolutionAPI com o chatwoot.
Se quiser disponibilizo EC2 para fazerem testes..

@jaison-x
Copy link
Contributor

Opa, acabei de instalar aqui a versão develop e gerou um erro. Acredito que seja desta PR, ou então pode ser meu ambiente. Qual versão do chatwoot vocês estão usando?

O erro é este:

NoMethodError Api::V1::Accounts::ContactsController#filter

undefined method each_with_index for nil:NilClass

Valeu!

@yvescleuder
Copy link
Contributor Author

Opa, acabei de instalar aqui a versão develop e gerou um erro. Acredito que seja desta PR, ou então pode ser meu ambiente. Qual versão do chatwoot vocês estão usando?

O erro é este:

NoMethodError Api::V1::Accounts::ContactsController#filter

undefined method each_with_index for nil:NilClass

Valeu!

Amigo, você consegue me ajudar a testar? Faço o fix, eu não consegui fazer o teste.

@jaison-x
Copy link
Contributor

jaison-x commented Feb 1, 2024

Opa, acabei de instalar aqui a versão develop e gerou um erro. Acredito que seja desta PR, ou então pode ser meu ambiente. Qual versão do chatwoot vocês estão usando?
O erro é este:
NoMethodError Api::V1::Accounts::ContactsController#filter
undefined method each_with_index for nil:NilClass
Valeu!

Amigo, você consegue me ajudar a testar? Faço o fix, eu não consegui fazer o teste.

Você não tem o chatwoot instalado amigo? Se você for testar localmente teria que ter ele instalado, ou então, usar o chatwoot online e configurar uma caixa do tipo API: https://www.chatwoot.com

@yvescleuder
Copy link
Contributor Author

Opa, acabei de instalar aqui a versão develop e gerou um erro. Acredito que seja desta PR, ou então pode ser meu ambiente. Qual versão do chatwoot vocês estão usando?
O erro é este:
NoMethodError Api::V1::Accounts::ContactsController#filter
undefined method each_with_index for nil:NilClass
Valeu!

Amigo, você consegue me ajudar a testar? Faço o fix, eu não consegui fazer o teste.

Você não tem o chatwoot instalado amigo? Se você for testar localmente teria que ter ele instalado, ou então, usar o chatwoot online e configurar uma caixa do tipo API: https://www.chatwoot.com

NPM install não roda em mac por algum motivo.. se tiver alguém tiver a disposição para me ajudar a testar faço o fix, se não so remover a pr da branch develop.

@jaison-x
Copy link
Contributor

jaison-x commented Feb 1, 2024

Opa, acabei de instalar aqui a versão develop e gerou um erro. Acredito que seja desta PR, ou então pode ser meu ambiente. Qual versão do chatwoot vocês estão usando?
O erro é este:
NoMethodError Api::V1::Accounts::ContactsController#filter
undefined method each_with_index for nil:NilClass
Valeu!

Amigo, você consegue me ajudar a testar? Faço o fix, eu não consegui fazer o teste.

Você não tem o chatwoot instalado amigo? Se você for testar localmente teria que ter ele instalado, ou então, usar o chatwoot online e configurar uma caixa do tipo API: https://www.chatwoot.com

NPM install não roda em mac por algum motivo.. se tiver alguém tiver a disposição para me ajudar a testar faço o fix, se não so remover a pr da branch develop.

Mas isso pode ser algo do meu ambiente também. O ideal seria uma terceira pessoa testar para verificar se é algo global mesmo. Depois vou tentar dar uma olhada com mais calma.

@stgcompany
Copy link

image

Eu tive este erro ao testar pegando as alterações deste PR, não sei se é apenas comigo.

Pelo que testei ele até envia mensagem, mas quando recebe não consegue encontrar a conversa para enviar para o chatwoot.

@dlc-letelier
Copy link

dlc-letelier commented Feb 1, 2024

image

Eu tive este erro ao testar pegando as alterações deste PR, não sei se é apenas comigo.

Pelo que testei ele até envia mensagem, mas quando recebe não consegue encontrar a conversa para enviar para o chatwoot.

Tive o mesmo erro. O Chatwoot deixou de receber mensagens após o PR. Voltei à versão anterior.

@deivisonrpg
Copy link
Contributor

deivisonrpg commented Feb 1, 2024

O SDK do chatwoot que está sendo usado está com problemas no payload do método filter, esse é um dos problemas, já enviei um pull lá pra resolver figurolatam/chatwoot-sdk#7 essa é uma regressão da versão na 1.1.15 está correto.

@jaison-x
Copy link
Contributor

jaison-x commented Feb 1, 2024

Fiz um hotfix nesta PR: #392 até sair correção no SDK.

Dá para voltar esta PR atual ou então usar esta correção.

@deivisonrpg
Copy link
Contributor

No processo de debug aqui notei que o payload montado em getFilterPayload não está funcionando, nele é colocado múltiplos valores no array values, que apesar de ser um array, aparentemente não funciona como pensamos. Se fizer um filtro direto pelo chatwoot olhando pela aba network vai ver que ele não coloca múltiplos números lá dentro quando se usa um OR.

Correto é um objeto com attribute_key pra cada numero, ex:

{"payload":[{"attribute_key":"phone_number","filter_operator":"contains","values":["+553499999999"],"query_operator":"or","attribute_model":"standard","custom_attribute_type":""},{"attribute_key":"phone_number","filter_operator":"contains","values":["+5534999999999"],"custom_attribute_type":""}]}

outra duvida é, não é necessário fazer a busca por nome e e-mail não é? Tenho ate duvidas sobre o identifier

@yvescleuder
Copy link
Contributor Author

yvescleuder commented Feb 2, 2024

No processo de debug aqui notei que o payload montado em getFilterPayload não está funcionando, nele é colocado múltiplos valores no array values, que apesar de ser um array, aparentemente não funciona como pensamos. Se fizer um filtro direto pelo chatwoot olhando pela aba network vai ver que ele não coloca múltiplos números lá dentro quando se usa um OR.

Correto é um objeto com attribute_key pra cada numero, ex:

{"payload":[{"attribute_key":"phone_number","filter_operator":"contains","values":["+553499999999"],"query_operator":"or","attribute_model":"standard","custom_attribute_type":""},{"attribute_key":"phone_number","filter_operator":"contains","values":["+5534999999999"],"custom_attribute_type":""}]}

outra duvida é, não é necessário fazer a busca por nome e e-mail não é? Tenho ate duvidas sobre o identifier

Na PR que fiz, é para utilizar 4 campos
https://github.com/EvolutionAPI/evolution-api/pull/382/files#diff-c77fe41754fd10a0b59e492db4854b05d06f47145400c02e74e9c9e9b6bbcbaaR453
Fiz isso porque no método search do chatwoot já é feito a busca nesses campos.
https://www.chatwoot.com/developers/api/#tag/Contacts/operation/contactSearch

Tinha feito a consulta no Postman antes de fazer na pr, tinha dado certo, multiplos campos com multiplos numeros

@yvescleuder
Copy link
Contributor Author

#393 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants