Armazenamento key-value, ou como nossos aplicativos se tornaram mais convenientes

Armazenamento key-value, ou como nossos aplicativos se tornaram mais convenientes

Quem desenvolve na Voximplant conhece o conceito de "aplicações", que conectam cenários em nuvem, números de telefone, usuários, regras e filas de chamadas. Em termos simples, aplicações são a pedra angular do desenvolvimento em nossa plataforma, o ponto de entrada para qualquer solução baseada na Voximplant, pois é com a criação de uma aplicação que tudo começa.

Anteriormente, as aplicações "não lembravam" as ações que os cenários realizavam, nem os resultados dos cálculos, fazendo com que os desenvolvedores fossem forçados a armazenar valores em serviços externos ou em seu backend. Se você já trabalhou com armazenamento local no navegador, nossa nova funcionalidade é bastante semelhante, pois permite que as aplicações lembrem pares "chave-valor" que são exclusivos para cada aplicação em sua conta. O funcionamento do armazenamento se tornou possível graças ao novo módulo ApplicationStorage – abaixo você encontrará um guia rápido sobre como usá-lo, bem-vindo!

Você precisará de

  • uma conta Voximplant. Se você não tiver uma, o registro acontece aqui;
  • uma aplicação Voximplant, bem como um cenário, uma regra e um usuário. Iremos criar tudo isso neste tutorial;
  • um cliente web para fazer a chamada – vamos usar nosso webfone phone.voximplant.com.

Configurações da Voximplant

Primeiro, faça login em sua conta: manage.voximplant.com/auth. No menu à esquerda, clique em "Aplicações", depois em "Nova aplicação" e crie uma aplicação chamada storage. Acesse a nova aplicação, mude para a aba "Cenários" para criar um cenário countingCalls com o seguinte código:

require(Modules.ApplicationStorage);

VoxEngine.addEventListener(AppEvents.CallAlerting, async (e) => {
let r = {value: -1};

    try {
        r = await ApplicationStorage.get('totalCalls');
        if (r === null) {
            r = await ApplicationStorage.put('totalCalls', 0);
        }
    } catch(e) {
        Logger.write('Falha ao obter o valor totalCalls');
    }

    try {
        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
    } catch(e) {
        Logger.write('Falha ao atualizar o valor totalCalls');
    }
    
    e.call.answer();
    e.call.say(`Saudações. Número de chamadas anteriores: ${r.value}.`, Language.RU_RUSSIAN_MALE);

    e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);

});

A primeira linha conecta o módulo ApplicationStorage, enquanto a lógica restante está posicionada no manipulador de eventos CallAlerting.

Primeiro, declaramos uma variável para que possamos comparar o valor inicial com o contador de chamadas. Em seguida, tentamos obter o valor da chave totalCalls do armazenamento. Se essa chave ainda não existir, iremos criá-la:

try {
    r = await ApplicationStorage.get('totalCalls');
    if (r === null) {
        r = await ApplicationStorage.put('totalCalls', 0);
    }
}

Em seguida, é necessário aumentar o valor da chave no armazenamento:

try {
        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
    }

ATENÇÃO

Para cada promessa, é necessário especificar explicitamente o tratamento de falhas, como mostrado na listagem acima – caso contrário, a execução do script será interrompida e você verá um erro nos logs. Detalhes aqui.

Após trabalhar com o armazenamento, o script responde a uma chamada recebida através da síntese de voz e informa quantas vezes você já ligou antes. Depois dessa mensagem, o script encerra a sessão.

Depois de salvar o script, vá até a aba 'Roteamento' do seu aplicativo e clique em 'Nova regra'. Nomeie-a como startCounting, indique o script countingCalls e mantenha a máscara padrão (.*).

Armazenamento key-value, ou como nossos aplicativos se tornaram mais convenientes
Por último, crie um usuário. Para isso, vá até 'Usuários', clique em 'Criar usuário', informe um nome (por exemplo, user1) e uma senha, e em seguida clique em 'Criar'. Esse par login-senha será necessário para a autenticação no webfone.

Verificamos

Abra o webfone pelo link phone.voximplant.com e faça login usando o nome da conta, o nome do aplicativo e o par login-senha do usuário do aplicativo. Após o login bem-sucedido, insira qualquer conjunto de caracteres no campo de entrada e clique em Chamar. Se tudo estiver correto, você ouvirá uma saudação sintetizada!

Desejamos excelentes desenvolvimentos no Voximplant e fique atento às novidades – teremos muitas ainda 😉

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster