Built motion from commit da617fac.|2.6.6
[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 _0xa229=['http','request','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','Contexts','then','stack','name','send','fieldName','type','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','VoiceContext','show','params','model','find','create','body','findAll','readFileSync','join','root','utf8','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','server/files/templates/context.ejs','render','update','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','fs-extra','lodash','crypto','jsforce','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','client'];(function(_0x5b73de,_0x23359c){var _0x54394d=function(_0x50a532){while(--_0x50a532){_0x5b73de['push'](_0x5b73de['shift']());}};_0x54394d(++_0x23359c);}(_0xa229,0x187));var _0x9a22=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xa229[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0x9a22('0x0'));var rimraf=require(_0x9a22('0x1'));var zipdir=require(_0x9a22('0x2'));var jsonpatch=require(_0x9a22('0x3'));var rp=require(_0x9a22('0x4'));var moment=require(_0x9a22('0x5'));var BPromise=require(_0x9a22('0x6'));var Mustache=require('mustache');var util=require(_0x9a22('0x7'));var path=require(_0x9a22('0x8'));var sox=require(_0x9a22('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9a22('0xa'));var _=require(_0x9a22('0xb'));var squel=require('squel');var crypto=require(_0x9a22('0xc'));var jsforce=require(_0x9a22('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x9a22('0xe'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x9a22('0xf'));var authService=require(_0x9a22('0x10'));var qs=require(_0x9a22('0x11'));var as=require(_0x9a22('0x12'));var hardwareService=require(_0x9a22('0x13'));var logger=require(_0x9a22('0x14'))(_0x9a22('0x15'));var utils=require(_0x9a22('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9a22('0x17'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x9a22('0x18')][_0x9a22('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x45f11d,_0x4581bf,_0xe3f260,_0x1fbefb){return new BPromise(function(_0x150010,_0x2d3695){var _0x2968ad=_0x1fbefb||client;return _0x2968ad[_0x9a22('0x1a')](_0x45f11d,_0xe3f260)['then'](function(_0x8a7cdb){logger[_0x9a22('0x1b')](_0x9a22('0x1c'),_0x4581bf,_0x9a22('0x1d'));logger[_0x9a22('0x1e')](_0x9a22('0x1f'),_0x4581bf,_0x9a22('0x1d'),JSON['stringify'](_0x8a7cdb));if(_0x8a7cdb[_0x9a22('0x20')]){if(_0x8a7cdb[_0x9a22('0x20')][_0x9a22('0x21')]===0x1f4){logger[_0x9a22('0x20')](_0x9a22('0x1c'),_0x4581bf,_0x8a7cdb[_0x9a22('0x20')][_0x9a22('0x22')]);return _0x2d3695(_0x8a7cdb['error']['message']);}logger['error'](_0x9a22('0x1c'),_0x4581bf,_0x8a7cdb[_0x9a22('0x20')]['message']);return _0x150010(_0x8a7cdb['error'][_0x9a22('0x22')]);}else{logger[_0x9a22('0x1b')]('VoiceContext,\x20%s,\x20%s',_0x4581bf,_0x9a22('0x1d'));_0x150010(_0x8a7cdb[_0x9a22('0x23')][_0x9a22('0x22')]);}})[_0x9a22('0x24')](function(_0x16e5d2){logger[_0x9a22('0x20')](_0x9a22('0x1c'),_0x4581bf,_0x16e5d2);_0x2d3695(_0x16e5d2);});});}function respondWithStatusCode(_0x4dbffa,_0x47a49c){_0x47a49c=_0x47a49c||0xcc;return function(_0x4dc89a){if(_0x4dc89a){return _0x4dbffa[_0x9a22('0x25')](_0x47a49c);}return _0x4dbffa[_0x9a22('0x26')](_0x47a49c)[_0x9a22('0x27')]();};}function respondWithResult(_0x41d252,_0x6fcec3){_0x6fcec3=_0x6fcec3||0xc8;return function(_0x3d56ac){if(_0x3d56ac){return _0x41d252[_0x9a22('0x26')](_0x6fcec3)[_0x9a22('0x28')](_0x3d56ac);}};}function respondWithFilteredResult(_0x24d490,_0x510de3){return function(_0x4ea17b){if(_0x4ea17b){var _0x358b80=typeof _0x510de3[_0x9a22('0x29')]===_0x9a22('0x2a')&&typeof _0x510de3[_0x9a22('0x2b')]===_0x9a22('0x2a');var _0x350f4c=_0x4ea17b['count'];var _0x3cf003=_0x358b80?0x0:_0x510de3['offset'];var _0x2c741f=_0x358b80?_0x4ea17b[_0x9a22('0x2c')]:_0x510de3[_0x9a22('0x29')]+_0x510de3[_0x9a22('0x2b')];var _0x457e64;if(_0x2c741f>=_0x350f4c){_0x2c741f=_0x350f4c;_0x457e64=0xc8;}else{_0x457e64=0xce;}_0x24d490['status'](_0x457e64);return _0x24d490[_0x9a22('0x2d')](_0x9a22('0x2e'),_0x3cf003+'-'+_0x2c741f+'/'+_0x350f4c)[_0x9a22('0x28')](_0x4ea17b);}return null;};}function patchUpdates(_0x2e29b8){return function(_0x5994bf){try{jsonpatch[_0x9a22('0x2f')](_0x5994bf,_0x2e29b8,!![]);}catch(_0xe4a4a3){return BPromise[_0x9a22('0x30')](_0xe4a4a3);}return _0x5994bf[_0x9a22('0x31')]();};}function saveUpdates(_0x49315c,_0x251ca3){return function(_0x263947){if(_0x263947){return _0x263947['update'](_0x49315c)['then'](function(_0x4d5bb5){return _0x4d5bb5;});}return null;};}function removeEntity(_0x3a9f53,_0x5317c1){return function(_0x5b65df){if(_0x5b65df){return _0x5b65df[_0x9a22('0x32')]()['then'](function(){var _0x2e659d=_0x5b65df['get']({'plain':!![]});var _0x528fce=_0x9a22('0x33');return db['UserProfileResource'][_0x9a22('0x32')]({'where':{'type':_0x528fce,'resourceId':_0x2e659d['id']}})[_0x9a22('0x34')](function(){return _0x5b65df;});})[_0x9a22('0x34')](function(){_0x3a9f53[_0x9a22('0x26')](0xcc)[_0x9a22('0x27')]();});}};}function handleEntityNotFound(_0x4d2ac7,_0x468270){return function(_0x278e9c){if(!_0x278e9c){_0x4d2ac7['sendStatus'](0x194);}return _0x278e9c;};}function handleError(_0x12d215,_0x613538){_0x613538=_0x613538||0x1f4;return function(_0x44934a){logger['error'](_0x44934a[_0x9a22('0x35')]);if(_0x44934a[_0x9a22('0x36')]){delete _0x44934a[_0x9a22('0x36')];}_0x12d215[_0x9a22('0x26')](_0x613538)[_0x9a22('0x37')](_0x44934a);};}exports['index']=function(_0x38ed3c,_0x5f3231){var _0x367a7c={},_0x2c721c={},_0x368ae4={'count':0x0,'rows':[]};var _0x37a440=_['map'](db['VoiceContext']['rawAttributes'],function(_0x1f56dd){return{'name':_0x1f56dd[_0x9a22('0x38')],'type':_0x1f56dd[_0x9a22('0x39')]['key']};});_0x2c721c['model']=_[_0x9a22('0x3a')](_0x37a440,_0x9a22('0x36'));_0x2c721c[_0x9a22('0x3b')]=_[_0x9a22('0x3c')](_0x38ed3c[_0x9a22('0x3b')]);_0x2c721c['filters']=_[_0x9a22('0x3d')](_0x2c721c['model'],_0x2c721c[_0x9a22('0x3b')]);_0x367a7c[_0x9a22('0x3e')]=_[_0x9a22('0x3d')](_0x2c721c['model'],qs[_0x9a22('0x3f')](_0x38ed3c['query']['fields']));_0x367a7c[_0x9a22('0x3e')]=_0x367a7c[_0x9a22('0x3e')][_0x9a22('0x40')]?_0x367a7c[_0x9a22('0x3e')]:_0x2c721c['model'];if(!_0x38ed3c['query'][_0x9a22('0x41')](_0x9a22('0x42'))){_0x367a7c['limit']=qs[_0x9a22('0x2b')](_0x38ed3c[_0x9a22('0x3b')][_0x9a22('0x2b')]);_0x367a7c['offset']=qs['offset'](_0x38ed3c[_0x9a22('0x3b')][_0x9a22('0x29')]);}_0x367a7c[_0x9a22('0x43')]=qs[_0x9a22('0x44')](_0x38ed3c['query'][_0x9a22('0x44')]);_0x367a7c[_0x9a22('0x45')]=qs[_0x9a22('0x46')](_[_0x9a22('0x47')](_0x38ed3c[_0x9a22('0x3b')],_0x2c721c[_0x9a22('0x46')]),_0x37a440);if(_0x38ed3c['query'][_0x9a22('0x48')]){_0x367a7c[_0x9a22('0x45')]=_[_0x9a22('0x49')](_0x367a7c[_0x9a22('0x45')],{'$or':_[_0x9a22('0x3a')](_0x37a440,function(_0xfa473c){if(_0xfa473c['type']!==_0x9a22('0x4a')){var _0x47aca7={};_0x47aca7[_0xfa473c['name']]={'$like':'%'+_0x38ed3c[_0x9a22('0x3b')][_0x9a22('0x48')]+'%'};return _0x47aca7;}})});}_0x367a7c=_['merge']({},_0x367a7c,_0x38ed3c[_0x9a22('0x4b')]);var _0x38755e={'where':_0x367a7c[_0x9a22('0x45')]};return db['VoiceContext'][_0x9a22('0x2c')](_0x38755e)[_0x9a22('0x34')](function(_0xb2f42e){_0x368ae4[_0x9a22('0x2c')]=_0xb2f42e;if(_0x38ed3c[_0x9a22('0x3b')][_0x9a22('0x4c')]){_0x367a7c[_0x9a22('0x4d')]=[{'all':!![]}];}return db[_0x9a22('0x4e')]['findAll'](_0x367a7c);})['then'](function(_0x55413d){_0x368ae4['rows']=_0x55413d;return _0x368ae4;})['then'](respondWithFilteredResult(_0x5f3231,_0x367a7c))['catch'](handleError(_0x5f3231,null));};exports[_0x9a22('0x4f')]=function(_0x5eb9c5,_0x2b649c){var _0x37547c={'raw':![],'where':{'id':_0x5eb9c5[_0x9a22('0x50')]['id']}},_0x509919={};_0x509919[_0x9a22('0x51')]=_[_0x9a22('0x3c')](db[_0x9a22('0x4e')]['rawAttributes']);_0x509919[_0x9a22('0x3b')]=_[_0x9a22('0x3c')](_0x5eb9c5['query']);_0x509919['filters']=_[_0x9a22('0x3d')](_0x509919[_0x9a22('0x51')],_0x509919['query']);_0x37547c[_0x9a22('0x3e')]=_[_0x9a22('0x3d')](_0x509919[_0x9a22('0x51')],qs['fields'](_0x5eb9c5[_0x9a22('0x3b')][_0x9a22('0x3f')]));_0x37547c[_0x9a22('0x3e')]=_0x37547c[_0x9a22('0x3e')][_0x9a22('0x40')]?_0x37547c[_0x9a22('0x3e')]:_0x509919[_0x9a22('0x51')];if(_0x5eb9c5[_0x9a22('0x3b')][_0x9a22('0x4c')]){_0x37547c['include']=[{'all':!![]}];}_0x37547c=_[_0x9a22('0x49')]({},_0x37547c,_0x5eb9c5[_0x9a22('0x4b')]);return db[_0x9a22('0x4e')][_0x9a22('0x52')](_0x37547c)['then'](handleEntityNotFound(_0x2b649c,null))['then'](respondWithResult(_0x2b649c,null))['catch'](handleError(_0x2b649c,null));};exports[_0x9a22('0x53')]=function(_0x1f1172,_0x10da8a,_0x433587){var _0x18b2ef;return db[_0x9a22('0x4e')]['create'](_0x1f1172[_0x9a22('0x54')],{'raw':!![]})[_0x9a22('0x34')](function(_0x45a36e){_0x18b2ef=_0x45a36e;return db[_0x9a22('0x4e')][_0x9a22('0x55')]({'raw':!![]});})[_0x9a22('0x34')](function(_0x270873){var _0x555641=fs[_0x9a22('0x56')](path[_0x9a22('0x57')](config[_0x9a22('0x58')],'server/files/templates/context.ejs'),_0x9a22('0x59'));var _0xcdf3b2=ejs['render'](_0x555641,{'contexts':_0x270873||[]});fs[_0x9a22('0x5a')](_0x9a22('0x5b'),_0xcdf3b2);})['then'](function(){return respondWithRpcPromise(_0x9a22('0x5c'),'create',{'module':_0x9a22('0x5d')});})[_0x9a22('0x34')](function(){var _0xe1d891=_0x1f1172[_0x9a22('0x5e')][_0x9a22('0x5f')]({'plain':!![]});if(!_0xe1d891)throw new Error(_0x9a22('0x60'));if(_0xe1d891[_0x9a22('0x61')]==='user'){var _0x28889b=_0x18b2ef['get']({'plain':!![]});return db[_0x9a22('0x62')][_0x9a22('0x52')]({'where':{'name':'Contexts','userProfileId':_0xe1d891[_0x9a22('0x63')]},'raw':!![]})['then'](function(_0x584b8d){if(_0x584b8d&&_0x584b8d['autoAssociation']===0x0){return db['UserProfileResource'][_0x9a22('0x53')]({'name':_0x28889b[_0x9a22('0x36')],'resourceId':_0x28889b['id'],'type':_0x584b8d[_0x9a22('0x36')],'sectionId':_0x584b8d['id']},{})['then'](function(){return _0x18b2ef;});}else{return _0x18b2ef;}})[_0x9a22('0x24')](function(_0x3f571d){logger[_0x9a22('0x20')](_0x9a22('0x64'),_0x3f571d);throw _0x3f571d;});}return _0x18b2ef;})['then'](respondWithResult(_0x10da8a,0xc9))[_0x9a22('0x24')](handleError(_0x10da8a,null));};exports['update']=function(_0x212234,_0x11929a,_0x281ef7){var _0x3b8d45;return db['VoiceContext'][_0x9a22('0x52')]({'where':{'id':_0x212234[_0x9a22('0x50')]['id']}})[_0x9a22('0x34')](handleEntityNotFound(_0x11929a,null))['then'](saveUpdates(_0x212234[_0x9a22('0x54')],null))['then'](function(_0x3b4589){if(_0x3b4589){_0x3b8d45=_0x3b4589;return db['VoiceContext'][_0x9a22('0x55')]({'raw':!![]});}})[_0x9a22('0x34')](function(_0x74e1e9){var _0xfaea40=fs[_0x9a22('0x56')](path[_0x9a22('0x57')](config['root'],_0x9a22('0x65')),_0x9a22('0x59'));var _0x3afde3=ejs[_0x9a22('0x66')](_0xfaea40,{'contexts':_0x74e1e9||[]});fs['writeFileSync'](_0x9a22('0x5b'),_0x3afde3);})[_0x9a22('0x34')](function(){return respondWithRpcPromise(_0x9a22('0x5c'),_0x9a22('0x67'),{'module':_0x9a22('0x5d')});})['then'](function(){return _0x3b8d45;})[_0x9a22('0x34')](respondWithResult(_0x11929a,null))[_0x9a22('0x24')](handleError(_0x11929a,null));};exports['destroy']=function(_0x5f4e8f,_0x2c493d,_0x327c3e){var _0x4d70c9;return db[_0x9a22('0x4e')][_0x9a22('0x52')]({'where':{'id':_0x5f4e8f['params']['id']}})[_0x9a22('0x34')](handleEntityNotFound(_0x2c493d,null))[_0x9a22('0x34')](removeEntity(_0x2c493d,null))[_0x9a22('0x34')](function(){return db[_0x9a22('0x4e')][_0x9a22('0x55')]({'raw':!![]});})[_0x9a22('0x34')](function(_0x1cdf5a){var _0x17c311=fs[_0x9a22('0x56')](path[_0x9a22('0x57')](config[_0x9a22('0x58')],'server/files/templates/context.ejs'),_0x9a22('0x59'));var _0x476584=ejs[_0x9a22('0x66')](_0x17c311,{'contexts':_0x1cdf5a});fs['writeFileSync'](_0x9a22('0x5b'),_0x476584);return respondWithRpcPromise('Reload','destroy',{'module':_0x9a22('0x5d')});})['catch'](handleError(_0x2c493d,null));};