Usar funções
Como já foi explicado previamente, funções são um conjunto de instruções que executam uma tarefa ou calculam um valor.
O Builder possui funções pré-definidas para facilitar a interação do usuário.
Aqui veremos estas funções:
Funções de Validação
As funções ilustradas abaixo, possuem a função de validação, as funções verificam suas regras, e caso existam retornam TRUE, caso não retornam FALSE.
Por exemplo, se você usar a função "IsValidCPF" e o CPF que o usuário inserir não for válido, o bloco retornara false. Já se o CPF for válido, retornará true.
As demais funções presentes na imagem seguem o mesmo raciocínio.
JSON Stringify
Esta função recebe um objeto JSON e o transforma em STRING, sendo retornado uma string após o bloco ser ativado.
JSON Parse
Esta função transforma um JSON texto em objeto, retornando um objeto JSON após o bloco ser ativado.
Get Phone
Esta função pega o número de celular do usuário, caso ele esteja no mensageiro WhatsApp. Se ele estiver em algum outro Mensageiro, como o Falazap, apenas retornará false.
TFA
Esta função realiza o Two Factor Auth, um método de autenticação visando segurança, sendo retornado um objeto TFA, com o código enviado e telefone.
Localização - lat, long do usuário
Para pegar a localização de um usuário, podemos fazer de duas formas: pelo CEP ou por coordenadas geográficas.
A função "getAddress()" é responsável por extrair informações sobre o endereço do usuário, através das coordenadas geográficas dele. Inicialmente, a localização por coordenadas é extraída no formato (-23.49418148290683 | -46.5084906596817). Dividimos essa localização e armazenamos em duas variáveis, uma que contém a latitude (lat) e outra que contém a longitude (long):
Como visto nas imagens acima, as variáveis de latitude e longitude são utilizadas como parâmetros da função "getAddress()". Como retorno, temos um objeto que contém as informações de endereço, que armazenamos em variáveis de ambiente:
Há alguns casos em que o objeto de retorno pode não vir com todas as informações de endereço preenchidas. Para esse caso, existem tratativas já conhecidas e utilizadas, mas também há espaços para soluções de outros desenvolvedores.
1 - Inverter lat e long:
Uma primeira tratativa, consiste em trocar as posições do lat e long na função de "getAddress", solução que pode funcionar em alguns casos:
2 - Verificar se a cidade e o estado foram captados:
Há casos em que as únicas informações que não vem da função são o logradouro e o bairro. Assim, uma solução seria redirecionar o usuário para um bloco de pergunta e input pedindo a rua e o bairro do usuário:
3 - Redirecionar para a busca por CEP:
Em último caso, quando nenhuma informação foi extraída, direcionamos o usuário de volta ao bloco pai de localização e pedimos ao usuário que tente a localização via CEP.
Localização via CEP
Para a busca de localização via CEP, utilizamos a função isValidCEP()
Semelhante a busca por coordenadas geográficas, a função recebe como parâmetro o CEP (em um formato apenas de números) e retorna um objeto que contenha as informações de endereço.
Primeiramente, armazenamos o objeto de resposta da função em uma variável, verificamos se houve uma resposta válida por parte da função, ou seja, se a requisição funcionou corretamente. Depois, verificamos se a informação de logradouro está preenchida (geralmente é o campo vazio nos casos de endereços incompletos) e, então, armazenarmos os dados do objeto em variáveis de ambiente:
Assim como na busca de localização por coordenadas, o objeto de retorno pode vir com alguns campos vazios, sendo o mais comum o campo de logradouro. Para isso, temos uma tratativa para direcionar o usuário a um bloco de pergunta e input que pergunta a rua e o bairro do usuário:
Validador de CPF
Para realizar a validação de um CPF, utilizamos a função "isValidCPF()". É uma função que recebe uma string com o CPF (apenas com os números) e retorna o cpf caso seja válido. Caso contrário, a função retorna um espaço vazio (“ ”).
No exemplo acima, a saída esperada é “cpf inválido”.
Validador de CNPJ
Para validar um CNPJ, utilizamos a função "isValidCNPJ" que recebe como parâmetro uma string com o CNPJ formatado (apenas com os números) e retorna vazio (“ ”), caso não seja válido e retorna o próprio CNPJ passado como parâmetro.
Na imagem acima a saída esperada é “cnpj ok” e o cnpj passado como parâmetro.
Serviço de OCR
Para realizar uma requisição de OCR, utilizamos a função “Função OCR(url)”
Essa função recebe como parâmetro uma url proveniente do arquivo de um boleto.
Como resposta dessa requisição a função retorna um arranjo, contendo todas as informações que foram possíveis captar pelo OCR.
Para extrair a variável que será lida por um OCR, utilizamos um bloco avançado e selecionamos uma variável qualquer-input.
Em seguida, seguimos com o procedimento de armazenar as entradas em variáveis, validar o formato da entrada e realizar as manipulações desejadas e seguir no fluxo.
Ex. de aplicação:
No exemplo acima, a "vars.ec_pega" armazena a url do arquivo de entrada e é utilizada para dividir os casos entre o caminho feliz, caso o arquivo seja o que estávamos esperando e caminho triste, quando a entrada é inesperada. A variável "vars.ec_foto" armazena a entrada em definitivo e é passada como parâmetro na função. A resposta da função é armazenada na "vars.ec_data" e o fluxo segue em diante.
Envio de SMS
Para realizar o envio de SMS, utilizamos a função "sendSMSCode" que recebe como parâmetros o número de celular para o qual será enviado o SMS e a mensagem que deseja enviar por SMS .
Ex: