Built motion from commit (unavailable).|2.5.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 _0x46df=['Contexts','UserProfileResource','end','stack','name','index','map','VoiceContext','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','sort','where','filters','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','find','create','body','readFileSync','join','root','server/files/templates/context.ejs','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','utf8','Reload','rimraf','request-promise','bluebird','path','sox','to-csv','ejs','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','json','count','offset','limit','Content-Range','apply','reject','update','destroy','get'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x46df,0x95));var _0xf46d=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0x46df[_0x2b4411];return _0x8e41ef;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf46d('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xf46d('0x1'));var moment=require('moment');var BPromise=require(_0xf46d('0x2'));var Mustache=require('mustache');var util=require('util');var path=require(_0xf46d('0x3'));var sox=require(_0xf46d('0x4'));var csv=require(_0xf46d('0x5'));var ejs=require(_0xf46d('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xf46d('0x7'));var jsforce=require(_0xf46d('0x8'));var deskjs=require(_0xf46d('0x9'));var toCsv=require(_0xf46d('0x5'));var querystring=require('querystring');var Papa=require(_0xf46d('0xa'));var Redis=require(_0xf46d('0xb'));var authService=require(_0xf46d('0xc'));var qs=require(_0xf46d('0xd'));var as=require(_0xf46d('0xe'));var hardwareService=require(_0xf46d('0xf'));var logger=require(_0xf46d('0x10'))('api');var utils=require(_0xf46d('0x11'));var config=require(_0xf46d('0x12'));var licenseUtil=require(_0xf46d('0x13'));var db=require(_0xf46d('0x14'))['db'];var jayson=require(_0xf46d('0x15'));var client=jayson[_0xf46d('0x16')][_0xf46d('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x240d49,_0x1ddd27,_0x3a31ba,_0x25b0d3){return new BPromise(function(_0x26b56d,_0x484d4a){var _0x4d7b4e=_0x25b0d3||client;return _0x4d7b4e[_0xf46d('0x18')](_0x240d49,_0x3a31ba)[_0xf46d('0x19')](function(_0x7aab01){logger[_0xf46d('0x1a')](_0xf46d('0x1b'),_0x1ddd27,_0xf46d('0x1c'));logger[_0xf46d('0x1d')](_0xf46d('0x1e'),_0x1ddd27,_0xf46d('0x1c'),JSON[_0xf46d('0x1f')](_0x7aab01));if(_0x7aab01['error']){if(_0x7aab01[_0xf46d('0x20')][_0xf46d('0x21')]===0x1f4){logger[_0xf46d('0x20')](_0xf46d('0x1b'),_0x1ddd27,_0x7aab01['error'][_0xf46d('0x22')]);return _0x484d4a(_0x7aab01['error'][_0xf46d('0x22')]);}logger['error'](_0xf46d('0x1b'),_0x1ddd27,_0x7aab01[_0xf46d('0x20')][_0xf46d('0x22')]);return _0x26b56d(_0x7aab01[_0xf46d('0x20')][_0xf46d('0x22')]);}else{logger[_0xf46d('0x1a')]('VoiceContext,\x20%s,\x20%s',_0x1ddd27,_0xf46d('0x1c'));_0x26b56d(_0x7aab01[_0xf46d('0x23')][_0xf46d('0x22')]);}})[_0xf46d('0x24')](function(_0x3692a7){logger[_0xf46d('0x20')](_0xf46d('0x1b'),_0x1ddd27,_0x3692a7);_0x484d4a(_0x3692a7);});});}function respondWithStatusCode(_0x5484c3,_0x14d615){_0x14d615=_0x14d615||0xcc;return function(_0x46751a){if(_0x46751a){return _0x5484c3[_0xf46d('0x25')](_0x14d615);}return _0x5484c3['status'](_0x14d615)['end']();};}function respondWithResult(_0x57c1b3,_0x165bf7){_0x165bf7=_0x165bf7||0xc8;return function(_0x841005){if(_0x841005){return _0x57c1b3[_0xf46d('0x26')](_0x165bf7)[_0xf46d('0x27')](_0x841005);}};}function respondWithFilteredResult(_0x30b48a,_0x17bd3b){return function(_0x12f493){if(_0x12f493){var _0x6ed6c4=_0x12f493[_0xf46d('0x28')],_0xfb13de=_0x17bd3b[_0xf46d('0x29')],_0x203642=_0x17bd3b[_0xf46d('0x29')]+_0x17bd3b[_0xf46d('0x2a')],_0x23b593;if(_0x203642>=_0x6ed6c4){_0x203642=_0x6ed6c4;_0x23b593=0xc8;}else{_0x23b593=0xce;}_0x30b48a[_0xf46d('0x26')](_0x23b593);return _0x30b48a['set'](_0xf46d('0x2b'),_0xfb13de+'-'+_0x203642+'/'+_0x6ed6c4)[_0xf46d('0x27')](_0x12f493);}return null;};}function patchUpdates(_0x249f64){return function(_0x21f975){try{jsonpatch[_0xf46d('0x2c')](_0x21f975,_0x249f64,!![]);}catch(_0x1497bd){return BPromise[_0xf46d('0x2d')](_0x1497bd);}return _0x21f975['save']();};}function saveUpdates(_0x1450f1,_0x1d2ee8){return function(_0x45a99f){if(_0x45a99f){return _0x45a99f[_0xf46d('0x2e')](_0x1450f1)[_0xf46d('0x19')](function(_0x8ec665){return _0x8ec665;});}return null;};}function removeEntity(_0x353e0c,_0x3498f0){return function(_0x2a15e1){if(_0x2a15e1){return _0x2a15e1[_0xf46d('0x2f')]()[_0xf46d('0x19')](function(){var _0x2f4ed7=_0x2a15e1[_0xf46d('0x30')]({'plain':!![]});var _0x2445b3=_0xf46d('0x31');return db[_0xf46d('0x32')][_0xf46d('0x2f')]({'where':{'type':_0x2445b3,'resourceId':_0x2f4ed7['id']}})[_0xf46d('0x19')](function(){return _0x2a15e1;});})['then'](function(){_0x353e0c['status'](0xcc)[_0xf46d('0x33')]();});}};}function handleEntityNotFound(_0x31a73d,_0x561329){return function(_0x10e76a){if(!_0x10e76a){_0x31a73d['sendStatus'](0x194);}return _0x10e76a;};}function handleError(_0x30df17,_0x4f8902){_0x4f8902=_0x4f8902||0x1f4;return function(_0x4f62e3){logger[_0xf46d('0x20')](_0x4f62e3[_0xf46d('0x34')]);if(_0x4f62e3[_0xf46d('0x35')]){delete _0x4f62e3[_0xf46d('0x35')];}_0x30df17['status'](_0x4f8902)['send'](_0x4f62e3);};}exports[_0xf46d('0x36')]=function(_0x12a380,_0x1fbd52){var _0x49f79b={},_0x81e8a1={},_0x205485={'count':0x0,'rows':[]};var _0x110a84=_[_0xf46d('0x37')](db[_0xf46d('0x38')][_0xf46d('0x39')],function(_0x4d2d13){return{'name':_0x4d2d13[_0xf46d('0x3a')],'type':_0x4d2d13[_0xf46d('0x3b')][_0xf46d('0x3c')]};});_0x81e8a1[_0xf46d('0x3d')]=_[_0xf46d('0x37')](_0x110a84,'name');_0x81e8a1[_0xf46d('0x3e')]=_[_0xf46d('0x3f')](_0x12a380['query']);_0x81e8a1['filters']=_[_0xf46d('0x40')](_0x81e8a1[_0xf46d('0x3d')],_0x81e8a1[_0xf46d('0x3e')]);_0x49f79b['attributes']=_[_0xf46d('0x40')](_0x81e8a1[_0xf46d('0x3d')],qs['fields'](_0x12a380[_0xf46d('0x3e')][_0xf46d('0x41')]));_0x49f79b[_0xf46d('0x42')]=_0x49f79b['attributes'][_0xf46d('0x43')]?_0x49f79b[_0xf46d('0x42')]:_0x81e8a1['model'];if(!_0x12a380[_0xf46d('0x3e')][_0xf46d('0x44')]('nolimit')){_0x49f79b[_0xf46d('0x2a')]=qs[_0xf46d('0x2a')](_0x12a380[_0xf46d('0x3e')][_0xf46d('0x2a')]);_0x49f79b[_0xf46d('0x29')]=qs[_0xf46d('0x29')](_0x12a380[_0xf46d('0x3e')][_0xf46d('0x29')]);}_0x49f79b['order']=qs[_0xf46d('0x45')](_0x12a380[_0xf46d('0x3e')]['sort']);_0x49f79b[_0xf46d('0x46')]=qs[_0xf46d('0x47')](_[_0xf46d('0x48')](_0x12a380[_0xf46d('0x3e')],_0x81e8a1['filters']),_0x110a84);if(_0x12a380[_0xf46d('0x3e')]['filter']){_0x49f79b[_0xf46d('0x46')]=_[_0xf46d('0x49')](_0x49f79b['where'],{'$or':_['map'](_0x110a84,function(_0x5575b7){if(_0x5575b7['type']!==_0xf46d('0x4a')){var _0x21aba1={};_0x21aba1[_0x5575b7[_0xf46d('0x35')]]={'$like':'%'+_0x12a380['query']['filter']+'%'};return _0x21aba1;}})});}_0x49f79b=_[_0xf46d('0x49')]({},_0x49f79b,_0x12a380[_0xf46d('0x4b')]);var _0x296ca0={'where':_0x49f79b['where']};return db[_0xf46d('0x38')][_0xf46d('0x28')](_0x296ca0)[_0xf46d('0x19')](function(_0xdf0e1f){_0x205485['count']=_0xdf0e1f;if(_0x12a380[_0xf46d('0x3e')][_0xf46d('0x4c')]){_0x49f79b[_0xf46d('0x4d')]=[{'all':!![]}];}return db[_0xf46d('0x38')][_0xf46d('0x4e')](_0x49f79b);})[_0xf46d('0x19')](function(_0x364c76){_0x205485[_0xf46d('0x4f')]=_0x364c76;return _0x205485;})[_0xf46d('0x19')](respondWithFilteredResult(_0x1fbd52,_0x49f79b))[_0xf46d('0x24')](handleError(_0x1fbd52,null));};exports[_0xf46d('0x50')]=function(_0x51ee21,_0x4859ab){var _0x61d8f4={'raw':![],'where':{'id':_0x51ee21[_0xf46d('0x51')]['id']}},_0x2275d1={};_0x2275d1[_0xf46d('0x3d')]=_['keys'](db['VoiceContext'][_0xf46d('0x39')]);_0x2275d1[_0xf46d('0x3e')]=_[_0xf46d('0x3f')](_0x51ee21[_0xf46d('0x3e')]);_0x2275d1[_0xf46d('0x47')]=_[_0xf46d('0x40')](_0x2275d1['model'],_0x2275d1[_0xf46d('0x3e')]);_0x61d8f4['attributes']=_['intersection'](_0x2275d1[_0xf46d('0x3d')],qs[_0xf46d('0x41')](_0x51ee21[_0xf46d('0x3e')][_0xf46d('0x41')]));_0x61d8f4['attributes']=_0x61d8f4[_0xf46d('0x42')][_0xf46d('0x43')]?_0x61d8f4[_0xf46d('0x42')]:_0x2275d1[_0xf46d('0x3d')];if(_0x51ee21[_0xf46d('0x3e')][_0xf46d('0x4c')]){_0x61d8f4[_0xf46d('0x4d')]=[{'all':!![]}];}_0x61d8f4=_[_0xf46d('0x49')]({},_0x61d8f4,_0x51ee21[_0xf46d('0x4b')]);return db['VoiceContext'][_0xf46d('0x52')](_0x61d8f4)[_0xf46d('0x19')](handleEntityNotFound(_0x4859ab,null))[_0xf46d('0x19')](respondWithResult(_0x4859ab,null))[_0xf46d('0x24')](handleError(_0x4859ab,null));};exports[_0xf46d('0x53')]=function(_0x282d54,_0x168d19,_0x2fd5e0){var _0x17c214;return db['VoiceContext'][_0xf46d('0x53')](_0x282d54[_0xf46d('0x54')],{'raw':!![]})[_0xf46d('0x19')](function(_0x49f17a){_0x17c214=_0x49f17a;return db[_0xf46d('0x38')][_0xf46d('0x4e')]({'raw':!![]});})[_0xf46d('0x19')](function(_0x72248c){var _0x4bcfea=fs[_0xf46d('0x55')](path[_0xf46d('0x56')](config[_0xf46d('0x57')],_0xf46d('0x58')),'utf8');var _0x2844c6=ejs[_0xf46d('0x59')](_0x4bcfea,{'contexts':_0x72248c||[]});fs[_0xf46d('0x5a')](_0xf46d('0x5b'),_0x2844c6);})['then'](function(){return respondWithRpcPromise('Reload',_0xf46d('0x53'),{'module':_0xf46d('0x5c')});})[_0xf46d('0x19')](function(){var _0x4431af=_0x282d54['user'][_0xf46d('0x30')]({'plain':!![]});if(!_0x4431af)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4431af[_0xf46d('0x5d')]==='user'){var _0x6f0c93=_0x17c214[_0xf46d('0x30')]({'plain':!![]});return db['UserProfileSection'][_0xf46d('0x52')]({'where':{'name':_0xf46d('0x31'),'userProfileId':_0x4431af[_0xf46d('0x5e')]},'raw':!![]})[_0xf46d('0x19')](function(_0xc37419){if(_0xc37419&&_0xc37419[_0xf46d('0x5f')]===0x0){return db[_0xf46d('0x32')][_0xf46d('0x53')]({'name':_0x6f0c93[_0xf46d('0x35')],'resourceId':_0x6f0c93['id'],'type':_0xc37419[_0xf46d('0x35')],'sectionId':_0xc37419['id']},{})[_0xf46d('0x19')](function(){return _0x17c214;});}else{return _0x17c214;}})[_0xf46d('0x24')](function(_0x34c2e1){logger[_0xf46d('0x20')](_0xf46d('0x60'),_0x34c2e1);throw _0x34c2e1;});}return _0x17c214;})['then'](respondWithResult(_0x168d19,0xc9))[_0xf46d('0x24')](handleError(_0x168d19,null));};exports[_0xf46d('0x2e')]=function(_0x2f865a,_0x564e02,_0x1764eb){var _0x4b5544;return db[_0xf46d('0x38')][_0xf46d('0x52')]({'where':{'id':_0x2f865a[_0xf46d('0x51')]['id']}})[_0xf46d('0x19')](handleEntityNotFound(_0x564e02,null))['then'](saveUpdates(_0x2f865a[_0xf46d('0x54')],null))[_0xf46d('0x19')](function(_0x3470ff){if(_0x3470ff){_0x4b5544=_0x3470ff;return db[_0xf46d('0x38')][_0xf46d('0x4e')]({'raw':!![]});}})['then'](function(_0x3c4042){var _0xc2bc56=fs[_0xf46d('0x55')](path[_0xf46d('0x56')](config['root'],_0xf46d('0x58')),_0xf46d('0x61'));var _0x4d85b8=ejs[_0xf46d('0x59')](_0xc2bc56,{'contexts':_0x3c4042||[]});fs[_0xf46d('0x5a')](_0xf46d('0x5b'),_0x4d85b8);})['then'](function(){return respondWithRpcPromise(_0xf46d('0x62'),_0xf46d('0x2e'),{'module':'chan_sip.so'});})['then'](function(){return _0x4b5544;})[_0xf46d('0x19')](respondWithResult(_0x564e02,null))[_0xf46d('0x24')](handleError(_0x564e02,null));};exports[_0xf46d('0x2f')]=function(_0x25f3a,_0x3d8305,_0x40ddb3){var _0x162423;return db[_0xf46d('0x38')][_0xf46d('0x52')]({'where':{'id':_0x25f3a[_0xf46d('0x51')]['id']}})[_0xf46d('0x19')](handleEntityNotFound(_0x3d8305,null))[_0xf46d('0x19')](removeEntity(_0x3d8305,null))[_0xf46d('0x19')](function(){return db[_0xf46d('0x38')][_0xf46d('0x4e')]({'raw':!![]});})['then'](function(_0x2671ef){var _0x3c36b4=fs['readFileSync'](path[_0xf46d('0x56')](config[_0xf46d('0x57')],_0xf46d('0x58')),_0xf46d('0x61'));var _0x3b7387=ejs[_0xf46d('0x59')](_0x3c36b4,{'contexts':_0x2671ef});fs[_0xf46d('0x5a')](_0xf46d('0x5b'),_0x3b7387);return respondWithRpcPromise(_0xf46d('0x62'),_0xf46d('0x2f'),{'module':_0xf46d('0x5c')});})[_0xf46d('0x24')](handleError(_0x3d8305,null));};