Built motion from commit 1fa89557.|2.6.10
[motion2.git] / server / services / agi / project.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 _0x5a6d=['clear','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','info','response','evtHangup','isUndefined','result','toString','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','traverseBFS','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','close','Project\x20%s\x20not\x20found','continueAt','Project\x20%s\x20not\x20published','moment','xml2json','util','agi','./rpc','./mailRpc','./graph','./vertices','getSquareProjects','catch','error','agicommand','retry','maxRetry','omit','mxCell','hasOwnProperty','length','source','target','addEdge','toJson','mxGraphModel','root','inspect','production','start','debug','stringify','joinAt','format','YYYY-MM-DD\x20HH:mm:ss','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','dnid','uniqueid'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x5a6d,0x1c2));var _0xd5a6=function(_0x439456,_0x5741f0){_0x439456=_0x439456-0x0;var _0x11096f=_0x5a6d[_0x439456];return _0x11096f;};'use strict';var _=require('lodash');var moment=require(_0xd5a6('0x0'));var parser=require(_0xd5a6('0x1'));var util=require(_0xd5a6('0x2'));var logger=require('../../config/logger')(_0xd5a6('0x3'));var rpc=require(_0xd5a6('0x4'));var mailRpc=require(_0xd5a6('0x5'));var Graph=require(_0xd5a6('0x6'));var Vertices=require(_0xd5a6('0x7'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;function getAll(){return rpc[_0xd5a6('0x8')]()[_0xd5a6('0x9')](function(_0x142837){logger[_0xd5a6('0xa')]('Unable\x20to\x20download\x20CallySquare\x20projects',_0x142837['stack']);return[];});}function addVertex(_0x7521eb,_0x5b311d,_0x824470){_0x5b311d[_0xd5a6('0xb')]=_0x824470;if(_0x5b311d['hasOwnProperty'](_0xd5a6('0xc'))){_0x5b311d[_0xd5a6('0xd')]=parseInt(_0x5b311d['retry'],0xa);}_0x7521eb['addVertex'](_[_0xd5a6('0xe')](_0x5b311d,_0xd5a6('0xf')));}function initGraph(_0x264a91,_0x248500){var _0x51d803=new Graph();for(var _0x19dda7 in _0x264a91){if(_0x264a91[_0xd5a6('0x10')](_0x19dda7)){if(_['isArray'](_0x264a91[_0x19dda7])){for(var _0x13f287=0x0;_0x13f287<_0x264a91[_0x19dda7][_0xd5a6('0x11')];_0x13f287+=0x1){addVertex(_0x51d803,_0x264a91[_0x19dda7][_0x13f287],_0x19dda7);}}else{addVertex(_0x51d803,_0x264a91[_0x19dda7],_0x19dda7);}}}for(var _0x481f9e=0x0;_0x481f9e<_0x248500[_0xd5a6('0x11')];_0x481f9e+=0x1){if(_0x248500[_0x481f9e][_0xd5a6('0x12')]&&_0x248500[_0x481f9e][_0xd5a6('0x13')]){_0x51d803[_0xd5a6('0x14')](_0x248500[_0x481f9e][_0xd5a6('0x12')],_0x248500[_0x481f9e][_0xd5a6('0x13')],_0x248500[_0x481f9e]['value']);}}return _0x51d803;}function getRoot(_0x1f4c76){return parser[_0xd5a6('0x15')](_0x1f4c76,{'object':!![]})[_0xd5a6('0x16')][_0xd5a6('0x17')];}function inspect(_0x2b3040){return util[_0xd5a6('0x18')](_0x2b3040,{'showHidden':![],'depth':null});}function initialize(_0x2779ad,_0x2ac55c){var _0x78e007=getRoot(_0x2779ad[_0xd5a6('0x19')]);if(!_0x78e007||!_0x78e007[_0xd5a6('0x1a')])return;var _0x3e6f55,_0x3a5b9d,_0x1be043;logger[_0xd5a6('0x1b')]('root',JSON[_0xd5a6('0x1c')](_0x78e007,null,0x2));_0x2ac55c[_0xd5a6('0x1d')]=moment()[_0xd5a6('0x1e')](_0xd5a6('0x1f'));_0x3e6f55=initGraph(_['omit'](_0x78e007,_0xd5a6('0xf')),_0x78e007['mxCell']);_0x3a5b9d=new Vertices(_0x2ac55c,rpc,mailRpc);logger['info'](util[_0xd5a6('0x1e')](_0xd5a6('0x20'),_0x2ac55c[_0xd5a6('0x21')],_0x2ac55c[_0xd5a6('0x22')],_0x2ac55c[_0xd5a6('0x23')],_0x2ac55c[_0xd5a6('0x24')],_0x2ac55c[_0xd5a6('0x25')]));_0x3e6f55['traverseBFS'](_0x78e007['start']['id'],function(_0x3b5071){try{_0x3b5071=_0x3a5b9d[_0xd5a6('0x26')](_0x3b5071);logger['debug'](_0xd5a6('0x27'),JSON[_0xd5a6('0x1c')](_0x3b5071,null,0x2));if(_0x3b5071[_0xd5a6('0xb')]===_0xd5a6('0x28')){logger['info'](_0xd5a6('0x29'));_0x2ac55c[_0xd5a6('0x2a')]=_0x3b5071['context']||_0x2ac55c[_0xd5a6('0x2a')];_0x2ac55c[_0xd5a6('0x2b')]=_0x3b5071['extension'];_0x2ac55c['priority']=_0x3b5071[_0xd5a6('0x2c')]?_0x3b5071['priority']-0x1:0x1;return null;}else if(_0x3b5071&&_0x3a5b9d[_0x3b5071[_0xd5a6('0xb')]]){_0x1be043=_0x3a5b9d[_0x3b5071[_0xd5a6('0xb')]](_0x3b5071);logger[_0xd5a6('0x2d')](_0xd5a6('0x2e'),JSON[_0xd5a6('0x1c')](_0x1be043,null,0x2));if(_0x1be043&&_0x1be043['code']===AGI_CODE_SUCCESS&&_0x1be043['result']!==AGI_RESULT_ERROR&&!_0x2ac55c[_0xd5a6('0x2f')]){logger[_0xd5a6('0x1b')](_0xd5a6('0x2e'),inspect(_0x1be043));return _[_0xd5a6('0x30')](_0x1be043['result'])?null:_0x1be043[_0xd5a6('0x31')][_0xd5a6('0x32')]();}else{logger['error'](_0xd5a6('0x2e'),inspect(_0x1be043));return null;}}else{logger['error'](_0xd5a6('0x33'));return null;}}catch(_0x202bf5){logger['error'](_0x202bf5['stack']);return null;}});if(_0x78e007[_0xd5a6('0x34')]){logger[_0xd5a6('0x2d')](util[_0xd5a6('0x1e')](_0xd5a6('0x35'),_0x2ac55c[_0xd5a6('0x21')],_0x2ac55c[_0xd5a6('0x22')],_0x2ac55c[_0xd5a6('0x23')],_0x2ac55c[_0xd5a6('0x24')],_0x2ac55c['uniqueid']));_0x3e6f55[_0xd5a6('0x36')](_0x78e007[_0xd5a6('0x34')]['id'],function(_0x410f86){try{_0x410f86=_0x3a5b9d['clear'](_0x410f86);logger[_0xd5a6('0x1b')](_0xd5a6('0x27'),JSON['stringify'](_0x410f86,null,0x2));if(_0x410f86&&_0x3a5b9d[_0x410f86[_0xd5a6('0xb')]]){_0x1be043=_0x3a5b9d[_0x410f86[_0xd5a6('0xb')]](_0x410f86);if(_0x1be043){logger[_0xd5a6('0x1b')](_0xd5a6('0x2e'),inspect(_0x1be043));return _[_0xd5a6('0x30')](_0x1be043[_0xd5a6('0x31')])?null:_0x1be043[_0xd5a6('0x31')][_0xd5a6('0x32')]();}else{logger[_0xd5a6('0xa')](_0xd5a6('0x2e'),inspect(_0x1be043));return null;}}else{logger[_0xd5a6('0xa')](_0xd5a6('0x33'));return null;}}catch(_0x4ea6ca){logger[_0xd5a6('0xa')](_0x4ea6ca['stack']);return null;}});}logger[_0xd5a6('0x2d')](util[_0xd5a6('0x1e')](_0xd5a6('0x37'),_0x2ac55c[_0xd5a6('0x21')],_0x2ac55c[_0xd5a6('0x22')],_0x2ac55c[_0xd5a6('0x23')],_0x2ac55c[_0xd5a6('0x24')],_0x2ac55c[_0xd5a6('0x25')]));logger['info'](util[_0xd5a6('0x1e')](_0xd5a6('0x38'),_0x2ac55c[_0xd5a6('0x2a')],_0x2ac55c['extension'],parseInt(_0x2ac55c[_0xd5a6('0x2c')],0xa)+0x1));_0x2ac55c['continueAt'](_0x2ac55c[_0xd5a6('0x2a')],_0x2ac55c[_0xd5a6('0x2b')],parseInt(_0x2ac55c['priority'],0xa)+0x1);_0x2ac55c[_0xd5a6('0x39')]();}function handleNotFound(_0x504e8c){logger[_0xd5a6('0xa')](util['format'](_0xd5a6('0x3a'),_0x504e8c[_0xd5a6('0x21')]));_0x504e8c[_0xd5a6('0x3b')](_0x504e8c[_0xd5a6('0x2a')],_0x504e8c[_0xd5a6('0x2b')],parseInt(_0x504e8c[_0xd5a6('0x2c')],0xa)+0x1);_0x504e8c['close']();}function handleUnpublished(_0xee3d78){logger['error'](util[_0xd5a6('0x1e')](_0xd5a6('0x3c'),_0xee3d78[_0xd5a6('0x21')]));_0xee3d78[_0xd5a6('0x3b')](_0xee3d78['context'],_0xee3d78[_0xd5a6('0x2b')],parseInt(_0xee3d78[_0xd5a6('0x2c')],0xa)+0x1);_0xee3d78[_0xd5a6('0x39')]();}module['exports']={'getAll':getAll,'handleNotFound':handleNotFound,'handleUnpublished':handleUnpublished,'initialize':initialize};