Сховішча key-value, ці як нашы прыкладанні сталі зручней

Сховішча key-value, ці як нашы прыкладанні сталі зручней

Той, хто распрацоўвае на Voximplant, ведае аб канцэпцыі "прыкладанняў", якія звязваюць адзін з адным хмарныя сцэнары, тэлефонныя нумары, карыстальнікаў, правілы і чэргі званкоў. Прасцей кажучы, прыкладанні - гэта краевугольны камень распрацоўкі на нашай платформе, уваходная кропка ў любое рашэнне на аснове Voximplant, бо менавіта са стварэння прыкладання ўсё і пачынаецца.

Раней прыкладанні "не памяталі" ні дзеянні, што выконваюць сцэнары, ні вынікі вылічэнняў, так што распрацоўшчыкі былі вымушаныя захоўваць значэння ў іншых сэрвісах або на сваім бэкендзе. Калі вы калі-небудзь працавалі з local storage у браўзэры, то наша новая функцыянальнасць вельмі падобная на гэта, т.я. дазваляе прыкладанням запамінаць пары «ключ-значэнне», якія ўнікальныя для кожнага прыкладання ў вашым акаўнце. Праца сховішчы стала магчымая дзякуючы новаму модулю. ApplicationStorage - пад катом вас чакае кароткае кіраўніцтва па яго выкарыстанні, welcome!

Вам спатрэбяцца

  • акаўнт 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('Failure while getting totalCalls value');
    }

    try {
        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
    } catch(e) {
        Logger.write('Failure while updating totalCalls value');
    }
    
    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

Дадаць каментар