Built motion from commit 9d7072cc.|2.5.39
[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 _0xca3b=['options','includeAll','include','findAll','rows','show','params','find','create','body','readFileSync','join','utf8','writeFileSync','Reload','chan_sip.so','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Contexts','userProfileId','root','render','/etc/asterisk/extensions_xcally_contexts.conf','server/files/templates/context.ejs','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','VoiceContext,\x20%s,\x20%s','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','sendStatus','status','end','json','offset','limit','undefined','count','apply','reject','save','update','destroy','UserProfileResource','stack','name','send','map','VoiceContext','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','filter','merge','VIRTUAL'];(function(_0x77cbc3,_0x3f2d07){var _0x263ee5=function(_0x29207c){while(--_0x29207c){_0x77cbc3['push'](_0x77cbc3['shift']());}};_0x263ee5(++_0x3f2d07);}(_0xca3b,0x19f));var _0xbca3=function(_0x373624,_0x4d8d4d){_0x373624=_0x373624-0x0;var _0x36bc2a=_0xca3b[_0x373624];return _0x36bc2a;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xbca3('0x0'));var jsonpatch=require(_0xbca3('0x1'));var rp=require(_0xbca3('0x2'));var moment=require(_0xbca3('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xbca3('0x4'));var util=require(_0xbca3('0x5'));var path=require(_0xbca3('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbca3('0x7'));var _=require(_0xbca3('0x8'));var squel=require(_0xbca3('0x9'));var crypto=require(_0xbca3('0xa'));var jsforce=require(_0xbca3('0xb'));var deskjs=require(_0xbca3('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xbca3('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xbca3('0xe'));var hardwareService=require(_0xbca3('0xf'));var logger=require('../../config/logger')(_0xbca3('0x10'));var utils=require(_0xbca3('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0xbca3('0x12'));var db=require(_0xbca3('0x13'))['db'];var jayson=require(_0xbca3('0x14'));var client=jayson[_0xbca3('0x15')][_0xbca3('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x17ff12,_0x50918c,_0x2e2480,_0x12abdf){return new BPromise(function(_0x148f87,_0x21ca25){var _0x10f3f0=_0x12abdf||client;return _0x10f3f0['request'](_0x17ff12,_0x2e2480)[_0xbca3('0x17')](function(_0x1361fc){logger[_0xbca3('0x18')](_0xbca3('0x19'),_0x50918c,'request\x20sent');logger[_0xbca3('0x1a')](_0xbca3('0x1b'),_0x50918c,_0xbca3('0x1c'),JSON['stringify'](_0x1361fc));if(_0x1361fc[_0xbca3('0x1d')]){if(_0x1361fc[_0xbca3('0x1d')][_0xbca3('0x1e')]===0x1f4){logger[_0xbca3('0x1d')](_0xbca3('0x19'),_0x50918c,_0x1361fc[_0xbca3('0x1d')][_0xbca3('0x1f')]);return _0x21ca25(_0x1361fc['error'][_0xbca3('0x1f')]);}logger[_0xbca3('0x1d')](_0xbca3('0x19'),_0x50918c,_0x1361fc[_0xbca3('0x1d')][_0xbca3('0x1f')]);return _0x148f87(_0x1361fc[_0xbca3('0x1d')][_0xbca3('0x1f')]);}else{logger['info'](_0xbca3('0x19'),_0x50918c,'request\x20sent');_0x148f87(_0x1361fc[_0xbca3('0x20')][_0xbca3('0x1f')]);}})[_0xbca3('0x21')](function(_0x1c99e1){logger[_0xbca3('0x1d')]('VoiceContext,\x20%s,\x20%s',_0x50918c,_0x1c99e1);_0x21ca25(_0x1c99e1);});});}function respondWithStatusCode(_0x12d72a,_0x1cc5de){_0x1cc5de=_0x1cc5de||0xcc;return function(_0x5898cb){if(_0x5898cb){return _0x12d72a[_0xbca3('0x22')](_0x1cc5de);}return _0x12d72a[_0xbca3('0x23')](_0x1cc5de)[_0xbca3('0x24')]();};}function respondWithResult(_0xee26d5,_0x13ab1d){_0x13ab1d=_0x13ab1d||0xc8;return function(_0x34852d){if(_0x34852d){return _0xee26d5['status'](_0x13ab1d)[_0xbca3('0x25')](_0x34852d);}};}function respondWithFilteredResult(_0xad1367,_0xcf40b0){return function(_0x30019d){if(_0x30019d){var _0x23415c=typeof _0xcf40b0[_0xbca3('0x26')]==='undefined'&&typeof _0xcf40b0[_0xbca3('0x27')]===_0xbca3('0x28');var _0x28fcb2=_0x30019d['count'];var _0x1bffaa=_0x23415c?0x0:_0xcf40b0[_0xbca3('0x26')];var _0x4111b1=_0x23415c?_0x30019d[_0xbca3('0x29')]:_0xcf40b0[_0xbca3('0x26')]+_0xcf40b0[_0xbca3('0x27')];var _0x1abf84;if(_0x4111b1>=_0x28fcb2){_0x4111b1=_0x28fcb2;_0x1abf84=0xc8;}else{_0x1abf84=0xce;}_0xad1367[_0xbca3('0x23')](_0x1abf84);return _0xad1367['set']('Content-Range',_0x1bffaa+'-'+_0x4111b1+'/'+_0x28fcb2)[_0xbca3('0x25')](_0x30019d);}return null;};}function patchUpdates(_0x450e61){return function(_0x5098de){try{jsonpatch[_0xbca3('0x2a')](_0x5098de,_0x450e61,!![]);}catch(_0x530e4a){return BPromise[_0xbca3('0x2b')](_0x530e4a);}return _0x5098de[_0xbca3('0x2c')]();};}function saveUpdates(_0x45dbfe,_0x38b947){return function(_0x1ac54d){if(_0x1ac54d){return _0x1ac54d[_0xbca3('0x2d')](_0x45dbfe)[_0xbca3('0x17')](function(_0x24e243){return _0x24e243;});}return null;};}function removeEntity(_0x5c07a7,_0x13410d){return function(_0xeef30f){if(_0xeef30f){return _0xeef30f[_0xbca3('0x2e')]()[_0xbca3('0x17')](function(){var _0x3894f2=_0xeef30f['get']({'plain':!![]});var _0x42b07a='Contexts';return db[_0xbca3('0x2f')][_0xbca3('0x2e')]({'where':{'type':_0x42b07a,'resourceId':_0x3894f2['id']}})[_0xbca3('0x17')](function(){return _0xeef30f;});})[_0xbca3('0x17')](function(){_0x5c07a7[_0xbca3('0x23')](0xcc)[_0xbca3('0x24')]();});}};}function handleEntityNotFound(_0x5dc897,_0x2b5372){return function(_0x5222e6){if(!_0x5222e6){_0x5dc897[_0xbca3('0x22')](0x194);}return _0x5222e6;};}function handleError(_0x5b29cb,_0x36bedd){_0x36bedd=_0x36bedd||0x1f4;return function(_0x27e6cd){logger['error'](_0x27e6cd[_0xbca3('0x30')]);if(_0x27e6cd[_0xbca3('0x31')]){delete _0x27e6cd[_0xbca3('0x31')];}_0x5b29cb['status'](_0x36bedd)[_0xbca3('0x32')](_0x27e6cd);};}exports['index']=function(_0x1e4c2b,_0x4ea14a){var _0x56c3c8={},_0x413212={},_0x434079={'count':0x0,'rows':[]};var _0x4ec1c5=_[_0xbca3('0x33')](db[_0xbca3('0x34')][_0xbca3('0x35')],function(_0x1ff951){return{'name':_0x1ff951[_0xbca3('0x36')],'type':_0x1ff951[_0xbca3('0x37')]['key']};});_0x413212[_0xbca3('0x38')]=_[_0xbca3('0x33')](_0x4ec1c5,_0xbca3('0x31'));_0x413212[_0xbca3('0x39')]=_[_0xbca3('0x3a')](_0x1e4c2b[_0xbca3('0x39')]);_0x413212[_0xbca3('0x3b')]=_[_0xbca3('0x3c')](_0x413212[_0xbca3('0x38')],_0x413212['query']);_0x56c3c8['attributes']=_[_0xbca3('0x3c')](_0x413212[_0xbca3('0x38')],qs['fields'](_0x1e4c2b[_0xbca3('0x39')][_0xbca3('0x3d')]));_0x56c3c8[_0xbca3('0x3e')]=_0x56c3c8[_0xbca3('0x3e')][_0xbca3('0x3f')]?_0x56c3c8[_0xbca3('0x3e')]:_0x413212[_0xbca3('0x38')];if(!_0x1e4c2b[_0xbca3('0x39')]['hasOwnProperty'](_0xbca3('0x40'))){_0x56c3c8[_0xbca3('0x27')]=qs['limit'](_0x1e4c2b['query']['limit']);_0x56c3c8['offset']=qs[_0xbca3('0x26')](_0x1e4c2b[_0xbca3('0x39')][_0xbca3('0x26')]);}_0x56c3c8['order']=qs[_0xbca3('0x41')](_0x1e4c2b[_0xbca3('0x39')][_0xbca3('0x41')]);_0x56c3c8[_0xbca3('0x42')]=qs[_0xbca3('0x3b')](_['pick'](_0x1e4c2b[_0xbca3('0x39')],_0x413212['filters']),_0x4ec1c5);if(_0x1e4c2b['query'][_0xbca3('0x43')]){_0x56c3c8['where']=_[_0xbca3('0x44')](_0x56c3c8[_0xbca3('0x42')],{'$or':_['map'](_0x4ec1c5,function(_0x3ea26c){if(_0x3ea26c[_0xbca3('0x37')]!==_0xbca3('0x45')){var _0x3d0901={};_0x3d0901[_0x3ea26c[_0xbca3('0x31')]]={'$like':'%'+_0x1e4c2b[_0xbca3('0x39')][_0xbca3('0x43')]+'%'};return _0x3d0901;}})});}_0x56c3c8=_[_0xbca3('0x44')]({},_0x56c3c8,_0x1e4c2b[_0xbca3('0x46')]);var _0xb94ebe={'where':_0x56c3c8['where']};return db[_0xbca3('0x34')]['count'](_0xb94ebe)[_0xbca3('0x17')](function(_0x7c3ec3){_0x434079['count']=_0x7c3ec3;if(_0x1e4c2b[_0xbca3('0x39')][_0xbca3('0x47')]){_0x56c3c8[_0xbca3('0x48')]=[{'all':!![]}];}return db[_0xbca3('0x34')][_0xbca3('0x49')](_0x56c3c8);})['then'](function(_0x589bcf){_0x434079[_0xbca3('0x4a')]=_0x589bcf;return _0x434079;})[_0xbca3('0x17')](respondWithFilteredResult(_0x4ea14a,_0x56c3c8))[_0xbca3('0x21')](handleError(_0x4ea14a,null));};exports[_0xbca3('0x4b')]=function(_0xf8c5e2,_0x1ee6c2){var _0x38d3e9={'raw':![],'where':{'id':_0xf8c5e2[_0xbca3('0x4c')]['id']}},_0xa67777={};_0xa67777[_0xbca3('0x38')]=_[_0xbca3('0x3a')](db[_0xbca3('0x34')][_0xbca3('0x35')]);_0xa67777[_0xbca3('0x39')]=_[_0xbca3('0x3a')](_0xf8c5e2[_0xbca3('0x39')]);_0xa67777[_0xbca3('0x3b')]=_[_0xbca3('0x3c')](_0xa67777[_0xbca3('0x38')],_0xa67777[_0xbca3('0x39')]);_0x38d3e9['attributes']=_[_0xbca3('0x3c')](_0xa67777['model'],qs['fields'](_0xf8c5e2[_0xbca3('0x39')][_0xbca3('0x3d')]));_0x38d3e9[_0xbca3('0x3e')]=_0x38d3e9['attributes'][_0xbca3('0x3f')]?_0x38d3e9[_0xbca3('0x3e')]:_0xa67777['model'];if(_0xf8c5e2[_0xbca3('0x39')][_0xbca3('0x47')]){_0x38d3e9[_0xbca3('0x48')]=[{'all':!![]}];}_0x38d3e9=_['merge']({},_0x38d3e9,_0xf8c5e2[_0xbca3('0x46')]);return db[_0xbca3('0x34')][_0xbca3('0x4d')](_0x38d3e9)['then'](handleEntityNotFound(_0x1ee6c2,null))[_0xbca3('0x17')](respondWithResult(_0x1ee6c2,null))['catch'](handleError(_0x1ee6c2,null));};exports[_0xbca3('0x4e')]=function(_0x27dbb3,_0x5f4f2f,_0x5b5093){var _0x547008;return db[_0xbca3('0x34')][_0xbca3('0x4e')](_0x27dbb3[_0xbca3('0x4f')],{'raw':!![]})[_0xbca3('0x17')](function(_0x124fb5){_0x547008=_0x124fb5;return db['VoiceContext'][_0xbca3('0x49')]({'raw':!![]});})[_0xbca3('0x17')](function(_0x5a21cf){var _0x450e4f=fs[_0xbca3('0x50')](path[_0xbca3('0x51')](config['root'],'server/files/templates/context.ejs'),_0xbca3('0x52'));var _0x16cc14=ejs['render'](_0x450e4f,{'contexts':_0x5a21cf||[]});fs[_0xbca3('0x53')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x16cc14);})['then'](function(){return respondWithRpcPromise(_0xbca3('0x54'),'create',{'module':_0xbca3('0x55')});})[_0xbca3('0x17')](function(){var _0x1afdeb=_0x27dbb3[_0xbca3('0x56')][_0xbca3('0x57')]({'plain':!![]});if(!_0x1afdeb)throw new Error(_0xbca3('0x58'));if(_0x1afdeb[_0xbca3('0x59')]===_0xbca3('0x56')){var _0x3ef6ce=_0x547008[_0xbca3('0x57')]({'plain':!![]});return db[_0xbca3('0x5a')][_0xbca3('0x4d')]({'where':{'name':_0xbca3('0x5b'),'userProfileId':_0x1afdeb[_0xbca3('0x5c')]},'raw':!![]})['then'](function(_0x47ee54){if(_0x47ee54&&_0x47ee54['autoAssociation']===0x0){return db[_0xbca3('0x2f')]['create']({'name':_0x3ef6ce['name'],'resourceId':_0x3ef6ce['id'],'type':_0x47ee54['name'],'sectionId':_0x47ee54['id']},{})[_0xbca3('0x17')](function(){return _0x547008;});}else{return _0x547008;}})[_0xbca3('0x21')](function(_0x4ad13b){logger[_0xbca3('0x1d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4ad13b);throw _0x4ad13b;});}return _0x547008;})[_0xbca3('0x17')](respondWithResult(_0x5f4f2f,0xc9))[_0xbca3('0x21')](handleError(_0x5f4f2f,null));};exports[_0xbca3('0x2d')]=function(_0x50db9d,_0x4d249b,_0x2f7cf5){var _0x21386f;return db['VoiceContext'][_0xbca3('0x4d')]({'where':{'id':_0x50db9d['params']['id']}})['then'](handleEntityNotFound(_0x4d249b,null))[_0xbca3('0x17')](saveUpdates(_0x50db9d[_0xbca3('0x4f')],null))[_0xbca3('0x17')](function(_0x3a5c6e){if(_0x3a5c6e){_0x21386f=_0x3a5c6e;return db['VoiceContext'][_0xbca3('0x49')]({'raw':!![]});}})[_0xbca3('0x17')](function(_0x594025){var _0x491cf0=fs['readFileSync'](path[_0xbca3('0x51')](config[_0xbca3('0x5d')],'server/files/templates/context.ejs'),'utf8');var _0x4378fc=ejs[_0xbca3('0x5e')](_0x491cf0,{'contexts':_0x594025||[]});fs[_0xbca3('0x53')](_0xbca3('0x5f'),_0x4378fc);})[_0xbca3('0x17')](function(){return respondWithRpcPromise('Reload',_0xbca3('0x2d'),{'module':_0xbca3('0x55')});})['then'](function(){return _0x21386f;})[_0xbca3('0x17')](respondWithResult(_0x4d249b,null))['catch'](handleError(_0x4d249b,null));};exports['destroy']=function(_0x1f05f7,_0xda0ac,_0x4771ff){var _0x1e038a;return db[_0xbca3('0x34')][_0xbca3('0x4d')]({'where':{'id':_0x1f05f7[_0xbca3('0x4c')]['id']}})[_0xbca3('0x17')](handleEntityNotFound(_0xda0ac,null))[_0xbca3('0x17')](removeEntity(_0xda0ac,null))[_0xbca3('0x17')](function(){return db['VoiceContext'][_0xbca3('0x49')]({'raw':!![]});})['then'](function(_0x543680){var _0xb3bb63=fs[_0xbca3('0x50')](path[_0xbca3('0x51')](config[_0xbca3('0x5d')],_0xbca3('0x60')),'utf8');var _0x9471c3=ejs[_0xbca3('0x5e')](_0xb3bb63,{'contexts':_0x543680});fs[_0xbca3('0x53')](_0xbca3('0x5f'),_0x9471c3);return respondWithRpcPromise(_0xbca3('0x54'),_0xbca3('0x2e'),{'module':'chan_sip.so'});})[_0xbca3('0x21')](handleError(_0xda0ac,null));};