Хранилище key-value, или как нашите приложения станаха по-удобни

Хранилище key-value, или как нашите приложения станаха по-удобни

Все, кто разработва на Voximplant, знаят за концепцията на "приложенията", които свързват облачни сценарии, телефонни номера, потребители, правила и опашки за обаждания. С две думи, приложенията са основополагащият камък в разработката на нашата платформа, начален пункт за всяко решение на базата на Voximplant, тъй като всичко започва от създаването на приложение.

Предишните приложения "не помнеха" нито действията, които сценарият извършва, нито резултатите от изчисленията, така че разработчиците бяха принудени да запазват стойности в външни услуги или на своя бекенд. Ако някога сте работили с local storage в браузъра, новата ни функционалност е много сходна, тъй като позволява на приложенията да запомнят двойки "ключ-стойност", уникални за всяко приложение във вашия акаунт. Работата на хранилището стана възможна благодарение на новия модул ApplicationStorage – под кат получите кратко ръководство за неговото използване, добре дошли!

Нужни са ви

  • акаунт Voximplant. Ако нямате такъв, регистрацията е тук;
  • приложение Voximplant, както и сценарий, правило и един потребител. Всичко това ще създадем в този туториал;
  • веб клиент, за да осъществите обаждане – ще използваме нашия вебфон phone.voximplant.com.

Настройки Voximplant

Първо влезте в своя акаунт: manage.voximplant.com/auth. В лявото меню натиснете "Приложения", след това "Ново приложение" и създайте приложение с името storage. Влезте в новото приложение, преминете на таба "Сценарии", за да създадете сценарий countingCalls с този код:

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('Грешка при получаване на стойността totalCalls');
    }

    try {
        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
    } catch(e) {
        Logger.write('Грешка при обновяване на стойността totalCalls');
    }
    
    e.call.answer();
    e.call.say(`Здравейте.  Броят на предишните обаждания: ${r.value}. `, Language.RU_RUSSIAN_MALE);

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

});

Първият ред свързва модула ApplicationStorage, а остаалата логика е поместена в обработчика на събитието CallAlerting.

Първо обявяваме променлива, за да можем да сравняваме началната стойност с броя на обажданията. След това се опитваме да получим стойността на ключа totalCalls от хранилището. Ако такъв ключ все още не съществува, го създаваме:

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

Следва да увеличим стойността на ключа в хранилището:

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

ОБРАТЕТЕ ВНИМАНИЕ

За всеки промис е необходимо явно да посочите обработката на отказ, както е показано в списъка по-горе – в противен случай изпълнението на сценария ще бъде спряно, а в логовете ще видите грешка. Подробности тук.

След работа с хранилището сценарият отговаря на входящо обаждане с помощта на синтез на реч и казва колко пъти сте се обаждали досега. След това съобщение сценарият приключва сесията.

След като сте запазили сценария, отидете на таба „Роутинг“ на вашето приложение и натиснете „Новото правило“. Назовете го startCounting, посочете сценария countingCalls и оставете маската по подразбиране (.*).

Хранилище key-value, или как нашите приложения станаха по-удобни
Последно - създайте потребител. За целта отидете на „Потребители“, натиснете „Създай потребител“, посочете име (като user1) и парола, след това кликнете „Създай“. Това потребителско име-парола ще са ни необходими за автентикация в уебфона.

Проверяваме.

Отворете уебфона на линка phone.voximplant.com и се логнете, използвайки името на акаунта, името на приложението и потребителското име-парола от приложението. След успешно влизане въведете произволен набор от символи в полето за въвеждане и натиснете Call. Ако всичко е направено правилно, ще чуете синтезирано поздравление!

Желаем ви прекрасно разработване на Voximplant и следете новините – ще имаме още много 😉

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster