5ab46a618f45eb0b51937b132a5c391cee5d5739
[motion2.git] / server / services / routing / server / applications / gotoif.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xddc9=['join','stop','condition','priorityTrue','priorityFalse','info','rules','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','next','[%s][GOTOIF]\x20eval\x20error:\x20%s','message','[%s][GOTOIF]\x20%s','lodash','./utils','string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','priority\x20true\x20is\x20a\x20number','priority\x20false\x20is\x20a\x20number','fromString','replace','validate','length','error','map'];(function(_0x4a199e,_0x1c30ff){var _0x3aaab5=function(_0x4b6858){while(--_0x4b6858){_0x4a199e['push'](_0x4a199e['shift']());}};_0x3aaab5(++_0x1c30ff);}(_0xddc9,0x89));var _0x9ddc=function(_0x144c51,_0x9327f0){_0x144c51=_0x144c51-0x0;var _0x24653f=_0xddc9[_0x144c51];return _0x24653f;};'use strict';var schema=require('validate');var _=require(_0x9ddc('0x0'));var htmlToText=require('html-to-text');var utils=require(_0x9ddc('0x1'));var logger=require('../../../../config/logger')('routing');var gotoif=schema({'condition':{'type':_0x9ddc('0x2'),'required':!![],'message':_0x9ddc('0x3')},'priorityTrue':{'type':_0x9ddc('0x4'),'message':_0x9ddc('0x5')},'priorityFalse':{'type':_0x9ddc('0x4'),'message':_0x9ddc('0x6')}});exports['consequence']=function(_0x390a2c,_0x432237){return function(_0x3b857a){try{var _0x337e4c={'condition':htmlToText[_0x9ddc('0x7')](utils['getMustacheRender'](_0x432237[0x0],this),{'wordwrap':![]})[_0x9ddc('0x8')](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x432237[0x1],'priorityFalse':_0x432237[0x2]};var _0xa87734=gotoif[_0x9ddc('0x9')](_0x337e4c,{'typecast':!![]});if(_0xa87734[_0x9ddc('0xa')]){logger[_0x9ddc('0xb')]('[%s][GOTOIF]\x20%s',_0x390a2c,_[_0x9ddc('0xc')](_0xa87734,'message')[_0x9ddc('0xd')](',\x20'));_0x3b857a[_0x9ddc('0xe')]();}else{try{var _0x333eeb=eval('('+_0x337e4c[_0x9ddc('0xf')]+')');var _0x2ac7a4=_0x333eeb?_0x337e4c[_0x9ddc('0x10')]:_0x337e4c[_0x9ddc('0x11')];logger[_0x9ddc('0x12')]('[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s',_0x390a2c,_0x337e4c[_0x9ddc('0xf')],_0x333eeb,_0x2ac7a4||'next');if(_0x2ac7a4){var _0x1b8ec0=_['findIndex'](_0x3b857a[_0x9ddc('0x13')](),{'p':_0x2ac7a4});if(_0x1b8ec0>=0x0){logger[_0x9ddc('0x12')](_0x9ddc('0x14'),_0x390a2c,_0x2ac7a4||'next',_0x1b8ec0);_0x3b857a['next'](_0x1b8ec0);}else{logger['info']('[%s][GOTOIF]\x20priority\x20%s\x20not\x20found',_0x390a2c,_0x2ac7a4||_0x9ddc('0x15'));_0x3b857a[_0x9ddc('0xe')]();}}else{_0x3b857a[_0x9ddc('0x15')]();}}catch(_0x5bddd3){logger[_0x9ddc('0xb')](_0x9ddc('0x16'),_0x390a2c,_0x5bddd3[_0x9ddc('0x17')]);_0x3b857a[_0x9ddc('0xe')]();}}}catch(_0x31bb1a){logger['error'](_0x9ddc('0x18'),_0x390a2c,JSON['stringify'](_0x31bb1a));_0x3b857a['stop']();}};};