Built motion from commit 4d4d9a88.|2.6.26
[motion2.git] / server / api / voiceContext / voiceContext.controller.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 _0x6bde=['Content-Range','apply','reject','save','destroy','get','UserProfileResource','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','VoiceContext','includeAll','params','include','options','find','create','findAll','readFileSync','root','utf8','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Contexts','userProfileId','autoAssociation','update','body','join','server/files/templates/context.ejs','render','writeFileSync','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','sendStatus','status','end','json','offset','limit','undefined','count','set'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0x6bde,0x109));var _0xe6bd=function(_0x57d89c,_0x5f14dd){_0x57d89c=_0x57d89c-0x0;var _0x575fb9=_0x6bde[_0x57d89c];return _0x575fb9;};'use strict';var emlformat=require(_0xe6bd('0x0'));var rimraf=require(_0xe6bd('0x1'));var zipdir=require(_0xe6bd('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe6bd('0x3'));var moment=require(_0xe6bd('0x4'));var BPromise=require(_0xe6bd('0x5'));var Mustache=require('mustache');var util=require(_0xe6bd('0x6'));var path=require(_0xe6bd('0x7'));var sox=require(_0xe6bd('0x8'));var csv=require(_0xe6bd('0x9'));var ejs=require(_0xe6bd('0xa'));var fs=require('fs');var fs_extra=require(_0xe6bd('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xe6bd('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xe6bd('0xd'));var toCsv=require(_0xe6bd('0x9'));var querystring=require(_0xe6bd('0xe'));var Papa=require('papaparse');var Redis=require(_0xe6bd('0xf'));var authService=require(_0xe6bd('0x10'));var qs=require(_0xe6bd('0x11'));var as=require(_0xe6bd('0x12'));var hardwareService=require(_0xe6bd('0x13'));var logger=require('../../config/logger')(_0xe6bd('0x14'));var utils=require('../../config/utils');var config=require(_0xe6bd('0x15'));var licenseUtil=require(_0xe6bd('0x16'));var db=require(_0xe6bd('0x17'))['db'];var jayson=require(_0xe6bd('0x18'));var client=jayson[_0xe6bd('0x19')][_0xe6bd('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x4d1e5b,_0x3bcd97,_0x518dc3,_0x29c862){return new BPromise(function(_0x5b17c2,_0x2b3955){var _0x54e7df=_0x29c862||client;return _0x54e7df[_0xe6bd('0x1b')](_0x4d1e5b,_0x518dc3)[_0xe6bd('0x1c')](function(_0x3e6404){logger[_0xe6bd('0x1d')](_0xe6bd('0x1e'),_0x3bcd97,_0xe6bd('0x1f'));logger[_0xe6bd('0x20')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x3bcd97,'request\x20sent',JSON[_0xe6bd('0x21')](_0x3e6404));if(_0x3e6404[_0xe6bd('0x22')]){if(_0x3e6404[_0xe6bd('0x22')][_0xe6bd('0x23')]===0x1f4){logger[_0xe6bd('0x22')](_0xe6bd('0x1e'),_0x3bcd97,_0x3e6404[_0xe6bd('0x22')][_0xe6bd('0x24')]);return _0x2b3955(_0x3e6404[_0xe6bd('0x22')][_0xe6bd('0x24')]);}logger[_0xe6bd('0x22')](_0xe6bd('0x1e'),_0x3bcd97,_0x3e6404['error'][_0xe6bd('0x24')]);return _0x5b17c2(_0x3e6404[_0xe6bd('0x22')][_0xe6bd('0x24')]);}else{logger[_0xe6bd('0x1d')](_0xe6bd('0x1e'),_0x3bcd97,_0xe6bd('0x1f'));_0x5b17c2(_0x3e6404['result'][_0xe6bd('0x24')]);}})[_0xe6bd('0x25')](function(_0x33bf54){logger[_0xe6bd('0x22')](_0xe6bd('0x1e'),_0x3bcd97,_0x33bf54);_0x2b3955(_0x33bf54);});});}function respondWithStatusCode(_0x5c3f5e,_0x16f81b){_0x16f81b=_0x16f81b||0xcc;return function(_0x5877b8){if(_0x5877b8){return _0x5c3f5e[_0xe6bd('0x26')](_0x16f81b);}return _0x5c3f5e[_0xe6bd('0x27')](_0x16f81b)[_0xe6bd('0x28')]();};}function respondWithResult(_0x3c44b6,_0x2925eb){_0x2925eb=_0x2925eb||0xc8;return function(_0x275c44){if(_0x275c44){return _0x3c44b6[_0xe6bd('0x27')](_0x2925eb)[_0xe6bd('0x29')](_0x275c44);}};}function respondWithFilteredResult(_0x125d86,_0x217bee){return function(_0x24c80d){if(_0x24c80d){var _0x55c606=typeof _0x217bee[_0xe6bd('0x2a')]==='undefined'&&typeof _0x217bee[_0xe6bd('0x2b')]===_0xe6bd('0x2c');var _0x40ecaf=_0x24c80d[_0xe6bd('0x2d')];var _0x294dd4=_0x55c606?0x0:_0x217bee[_0xe6bd('0x2a')];var _0x527244=_0x55c606?_0x24c80d['count']:_0x217bee[_0xe6bd('0x2a')]+_0x217bee[_0xe6bd('0x2b')];var _0xb78227;if(_0x527244>=_0x40ecaf){_0x527244=_0x40ecaf;_0xb78227=0xc8;}else{_0xb78227=0xce;}_0x125d86['status'](_0xb78227);return _0x125d86[_0xe6bd('0x2e')](_0xe6bd('0x2f'),_0x294dd4+'-'+_0x527244+'/'+_0x40ecaf)[_0xe6bd('0x29')](_0x24c80d);}return null;};}function patchUpdates(_0x4696b1){return function(_0x38ac0e){try{jsonpatch[_0xe6bd('0x30')](_0x38ac0e,_0x4696b1,!![]);}catch(_0x108ba9){return BPromise[_0xe6bd('0x31')](_0x108ba9);}return _0x38ac0e[_0xe6bd('0x32')]();};}function saveUpdates(_0xcac46e,_0x466083){return function(_0x2d73d5){if(_0x2d73d5){return _0x2d73d5['update'](_0xcac46e)[_0xe6bd('0x1c')](function(_0x21bc5e){return _0x21bc5e;});}return null;};}function removeEntity(_0x31e35f,_0x5994fe){return function(_0x4a98ae){if(_0x4a98ae){return _0x4a98ae[_0xe6bd('0x33')]()[_0xe6bd('0x1c')](function(){var _0x1451ed=_0x4a98ae[_0xe6bd('0x34')]({'plain':!![]});var _0xc14e25='Contexts';return db[_0xe6bd('0x35')][_0xe6bd('0x33')]({'where':{'type':_0xc14e25,'resourceId':_0x1451ed['id']}})[_0xe6bd('0x1c')](function(){return _0x4a98ae;});})[_0xe6bd('0x1c')](function(){_0x31e35f[_0xe6bd('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0xf4cba7,_0x53118f){return function(_0x15c91f){if(!_0x15c91f){_0xf4cba7[_0xe6bd('0x26')](0x194);}return _0x15c91f;};}function handleError(_0x4e612c,_0x366886){_0x366886=_0x366886||0x1f4;return function(_0x4cc809){logger[_0xe6bd('0x22')](_0x4cc809['stack']);if(_0x4cc809[_0xe6bd('0x36')]){delete _0x4cc809[_0xe6bd('0x36')];}_0x4e612c[_0xe6bd('0x27')](_0x366886)[_0xe6bd('0x37')](_0x4cc809);};}exports[_0xe6bd('0x38')]=function(_0x1b2335,_0x696e0d){var _0x5f5415={},_0x45bf5c={},_0x1e1abf={'count':0x0,'rows':[]};var _0x289422=_[_0xe6bd('0x39')](db['VoiceContext'][_0xe6bd('0x3a')],function(_0x21160b){return{'name':_0x21160b[_0xe6bd('0x3b')],'type':_0x21160b[_0xe6bd('0x3c')][_0xe6bd('0x3d')]};});_0x45bf5c[_0xe6bd('0x3e')]=_['map'](_0x289422,_0xe6bd('0x36'));_0x45bf5c[_0xe6bd('0x3f')]=_[_0xe6bd('0x40')](_0x1b2335[_0xe6bd('0x3f')]);_0x45bf5c[_0xe6bd('0x41')]=_[_0xe6bd('0x42')](_0x45bf5c[_0xe6bd('0x3e')],_0x45bf5c[_0xe6bd('0x3f')]);_0x5f5415[_0xe6bd('0x43')]=_['intersection'](_0x45bf5c[_0xe6bd('0x3e')],qs[_0xe6bd('0x44')](_0x1b2335['query'][_0xe6bd('0x44')]));_0x5f5415[_0xe6bd('0x43')]=_0x5f5415[_0xe6bd('0x43')][_0xe6bd('0x45')]?_0x5f5415['attributes']:_0x45bf5c['model'];if(!_0x1b2335['query'][_0xe6bd('0x46')](_0xe6bd('0x47'))){_0x5f5415[_0xe6bd('0x2b')]=qs[_0xe6bd('0x2b')](_0x1b2335[_0xe6bd('0x3f')]['limit']);_0x5f5415[_0xe6bd('0x2a')]=qs[_0xe6bd('0x2a')](_0x1b2335[_0xe6bd('0x3f')][_0xe6bd('0x2a')]);}_0x5f5415['order']=qs[_0xe6bd('0x48')](_0x1b2335['query'][_0xe6bd('0x48')]);_0x5f5415[_0xe6bd('0x49')]=qs[_0xe6bd('0x41')](_[_0xe6bd('0x4a')](_0x1b2335[_0xe6bd('0x3f')],_0x45bf5c[_0xe6bd('0x41')]),_0x289422);if(_0x1b2335['query'][_0xe6bd('0x4b')]){_0x5f5415['where']=_[_0xe6bd('0x4c')](_0x5f5415[_0xe6bd('0x49')],{'$or':_['map'](_0x289422,function(_0xd1e922){if(_0xd1e922[_0xe6bd('0x3c')]!==_0xe6bd('0x4d')){var _0x4b0b96={};_0x4b0b96[_0xd1e922[_0xe6bd('0x36')]]={'$like':'%'+_0x1b2335[_0xe6bd('0x3f')][_0xe6bd('0x4b')]+'%'};return _0x4b0b96;}})});}_0x5f5415=_[_0xe6bd('0x4c')]({},_0x5f5415,_0x1b2335['options']);var _0x476b99={'where':_0x5f5415[_0xe6bd('0x49')]};return db[_0xe6bd('0x4e')]['count'](_0x476b99)['then'](function(_0x351db1){_0x1e1abf[_0xe6bd('0x2d')]=_0x351db1;if(_0x1b2335['query'][_0xe6bd('0x4f')]){_0x5f5415['include']=[{'all':!![]}];}return db[_0xe6bd('0x4e')]['findAll'](_0x5f5415);})[_0xe6bd('0x1c')](function(_0x85e10b){_0x1e1abf['rows']=_0x85e10b;return _0x1e1abf;})['then'](respondWithFilteredResult(_0x696e0d,_0x5f5415))['catch'](handleError(_0x696e0d,null));};exports['show']=function(_0x14b6e2,_0x1c4eb4){var _0x230fb6={'raw':![],'where':{'id':_0x14b6e2[_0xe6bd('0x50')]['id']}},_0x59f351={};_0x59f351[_0xe6bd('0x3e')]=_['keys'](db[_0xe6bd('0x4e')][_0xe6bd('0x3a')]);_0x59f351[_0xe6bd('0x3f')]=_['keys'](_0x14b6e2['query']);_0x59f351['filters']=_[_0xe6bd('0x42')](_0x59f351['model'],_0x59f351['query']);_0x230fb6[_0xe6bd('0x43')]=_['intersection'](_0x59f351[_0xe6bd('0x3e')],qs[_0xe6bd('0x44')](_0x14b6e2[_0xe6bd('0x3f')][_0xe6bd('0x44')]));_0x230fb6[_0xe6bd('0x43')]=_0x230fb6[_0xe6bd('0x43')][_0xe6bd('0x45')]?_0x230fb6[_0xe6bd('0x43')]:_0x59f351[_0xe6bd('0x3e')];if(_0x14b6e2['query'][_0xe6bd('0x4f')]){_0x230fb6[_0xe6bd('0x51')]=[{'all':!![]}];}_0x230fb6=_[_0xe6bd('0x4c')]({},_0x230fb6,_0x14b6e2[_0xe6bd('0x52')]);return db[_0xe6bd('0x4e')][_0xe6bd('0x53')](_0x230fb6)[_0xe6bd('0x1c')](handleEntityNotFound(_0x1c4eb4,null))[_0xe6bd('0x1c')](respondWithResult(_0x1c4eb4,null))[_0xe6bd('0x25')](handleError(_0x1c4eb4,null));};exports[_0xe6bd('0x54')]=function(_0x3deae1,_0x463b93,_0x11ae18){var _0x193d87;return db[_0xe6bd('0x4e')][_0xe6bd('0x54')](_0x3deae1['body'],{'raw':!![]})['then'](function(_0x509722){_0x193d87=_0x509722;return db[_0xe6bd('0x4e')][_0xe6bd('0x55')]({'raw':!![]});})['then'](function(_0x5c29a4){var _0x133d6a=fs[_0xe6bd('0x56')](path['join'](config[_0xe6bd('0x57')],'server/files/templates/context.ejs'),_0xe6bd('0x58'));var _0x6ac88a=ejs['render'](_0x133d6a,{'contexts':_0x5c29a4||[]});fs['writeFileSync'](_0xe6bd('0x59'),_0x6ac88a);})[_0xe6bd('0x1c')](function(){return respondWithRpcPromise(_0xe6bd('0x5a'),_0xe6bd('0x54'),{'module':_0xe6bd('0x5b')});})['then'](function(){var _0x521fff=_0x3deae1[_0xe6bd('0x5c')][_0xe6bd('0x34')]({'plain':!![]});if(!_0x521fff)throw new Error(_0xe6bd('0x5d'));if(_0x521fff[_0xe6bd('0x5e')]===_0xe6bd('0x5c')){var _0x10ca6b=_0x193d87[_0xe6bd('0x34')]({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0xe6bd('0x5f'),'userProfileId':_0x521fff[_0xe6bd('0x60')]},'raw':!![]})[_0xe6bd('0x1c')](function(_0x246a71){if(_0x246a71&&_0x246a71[_0xe6bd('0x61')]===0x0){return db[_0xe6bd('0x35')]['create']({'name':_0x10ca6b[_0xe6bd('0x36')],'resourceId':_0x10ca6b['id'],'type':_0x246a71['name'],'sectionId':_0x246a71['id']},{})['then'](function(){return _0x193d87;});}else{return _0x193d87;}})['catch'](function(_0x1b0d69){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1b0d69);throw _0x1b0d69;});}return _0x193d87;})[_0xe6bd('0x1c')](respondWithResult(_0x463b93,0xc9))['catch'](handleError(_0x463b93,null));};exports[_0xe6bd('0x62')]=function(_0x321f58,_0x5ca2ff,_0x1d0eaf){var _0x365714;return db['VoiceContext'][_0xe6bd('0x53')]({'where':{'id':_0x321f58[_0xe6bd('0x50')]['id']}})[_0xe6bd('0x1c')](handleEntityNotFound(_0x5ca2ff,null))[_0xe6bd('0x1c')](saveUpdates(_0x321f58[_0xe6bd('0x63')],null))['then'](function(_0x189d63){if(_0x189d63){_0x365714=_0x189d63;return db[_0xe6bd('0x4e')][_0xe6bd('0x55')]({'raw':!![]});}})[_0xe6bd('0x1c')](function(_0x4321e3){var _0xcb8d30=fs[_0xe6bd('0x56')](path[_0xe6bd('0x64')](config['root'],_0xe6bd('0x65')),'utf8');var _0x2537a9=ejs[_0xe6bd('0x66')](_0xcb8d30,{'contexts':_0x4321e3||[]});fs[_0xe6bd('0x67')](_0xe6bd('0x59'),_0x2537a9);})[_0xe6bd('0x1c')](function(){return respondWithRpcPromise(_0xe6bd('0x5a'),_0xe6bd('0x62'),{'module':_0xe6bd('0x5b')});})[_0xe6bd('0x1c')](function(){return _0x365714;})[_0xe6bd('0x1c')](respondWithResult(_0x5ca2ff,null))['catch'](handleError(_0x5ca2ff,null));};exports[_0xe6bd('0x33')]=function(_0x42c403,_0x1f92f6,_0x27dff2){var _0x1690a4;return db[_0xe6bd('0x4e')][_0xe6bd('0x53')]({'where':{'id':_0x42c403[_0xe6bd('0x50')]['id']}})[_0xe6bd('0x1c')](handleEntityNotFound(_0x1f92f6,null))[_0xe6bd('0x1c')](removeEntity(_0x1f92f6,null))[_0xe6bd('0x1c')](function(){return db[_0xe6bd('0x4e')][_0xe6bd('0x55')]({'raw':!![]});})[_0xe6bd('0x1c')](function(_0x527e5f){var _0x38a7c0=fs[_0xe6bd('0x56')](path['join'](config[_0xe6bd('0x57')],'server/files/templates/context.ejs'),_0xe6bd('0x58'));var _0x5922df=ejs['render'](_0x38a7c0,{'contexts':_0x527e5f});fs['writeFileSync'](_0xe6bd('0x59'),_0x5922df);return respondWithRpcPromise(_0xe6bd('0x5a'),_0xe6bd('0x33'),{'module':'chan_sip.so'});})['catch'](handleError(_0x1f92f6,null));};