aec2f747638a41516ec2fd3e06e896c40b4a97d8
[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 _0x7424=['params','length','options','create','body','readFileSync','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','Reload','chan_sip.so','user','role','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','/etc/asterisk/extensions_xcally_contexts.conf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','sendStatus','status','end','json','offset','undefined','count','limit','apply','save','update','get','Contexts','UserProfileResource','destroy','stack','name','send','index','map','VoiceContext','rawAttributes','type','key','keys','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','sort','where','filter','merge','includeAll','include','findAll','catch'];(function(_0x5da4a3,_0x169e9d){var _0x5bd151=function(_0x2f89c0){while(--_0x2f89c0){_0x5da4a3['push'](_0x5da4a3['shift']());}};_0x5bd151(++_0x169e9d);}(_0x7424,0xdc));var _0x4742=function(_0x1d57d1,_0x3a6a09){_0x1d57d1=_0x1d57d1-0x0;var _0x728751=_0x7424[_0x1d57d1];return _0x728751;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4742('0x0'));var zipdir=require(_0x4742('0x1'));var jsonpatch=require(_0x4742('0x2'));var rp=require(_0x4742('0x3'));var moment=require(_0x4742('0x4'));var BPromise=require(_0x4742('0x5'));var Mustache=require('mustache');var util=require(_0x4742('0x6'));var path=require(_0x4742('0x7'));var sox=require('sox');var csv=require(_0x4742('0x8'));var ejs=require(_0x4742('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4742('0xa'));var squel=require(_0x4742('0xb'));var crypto=require(_0x4742('0xc'));var jsforce=require(_0x4742('0xd'));var deskjs=require(_0x4742('0xe'));var toCsv=require(_0x4742('0x8'));var querystring=require(_0x4742('0xf'));var Papa=require('papaparse');var Redis=require(_0x4742('0x10'));var authService=require(_0x4742('0x11'));var qs=require(_0x4742('0x12'));var as=require(_0x4742('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4742('0x14'))(_0x4742('0x15'));var utils=require(_0x4742('0x16'));var config=require(_0x4742('0x17'));var licenseUtil=require(_0x4742('0x18'));var db=require(_0x4742('0x19'))['db'];var jayson=require(_0x4742('0x1a'));var client=jayson[_0x4742('0x1b')][_0x4742('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x4053e3,_0x5e6a20,_0x48d062,_0x3f5516){return new BPromise(function(_0x16b800,_0xc8b6ed){var _0x2342f3=_0x3f5516||client;return _0x2342f3[_0x4742('0x1d')](_0x4053e3,_0x48d062)[_0x4742('0x1e')](function(_0x532ff3){logger[_0x4742('0x1f')](_0x4742('0x20'),_0x5e6a20,_0x4742('0x21'));logger[_0x4742('0x22')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x5e6a20,_0x4742('0x21'),JSON[_0x4742('0x23')](_0x532ff3));if(_0x532ff3[_0x4742('0x24')]){if(_0x532ff3['error']['code']===0x1f4){logger[_0x4742('0x24')]('VoiceContext,\x20%s,\x20%s',_0x5e6a20,_0x532ff3['error'][_0x4742('0x25')]);return _0xc8b6ed(_0x532ff3[_0x4742('0x24')][_0x4742('0x25')]);}logger[_0x4742('0x24')](_0x4742('0x20'),_0x5e6a20,_0x532ff3['error'][_0x4742('0x25')]);return _0x16b800(_0x532ff3[_0x4742('0x24')][_0x4742('0x25')]);}else{logger['info']('VoiceContext,\x20%s,\x20%s',_0x5e6a20,_0x4742('0x21'));_0x16b800(_0x532ff3[_0x4742('0x26')][_0x4742('0x25')]);}})['catch'](function(_0x3da1db){logger[_0x4742('0x24')](_0x4742('0x20'),_0x5e6a20,_0x3da1db);_0xc8b6ed(_0x3da1db);});});}function respondWithStatusCode(_0x38900a,_0x1604b0){_0x1604b0=_0x1604b0||0xcc;return function(_0x536160){if(_0x536160){return _0x38900a[_0x4742('0x27')](_0x1604b0);}return _0x38900a[_0x4742('0x28')](_0x1604b0)[_0x4742('0x29')]();};}function respondWithResult(_0x58dde6,_0x517b52){_0x517b52=_0x517b52||0xc8;return function(_0x572793){if(_0x572793){return _0x58dde6[_0x4742('0x28')](_0x517b52)[_0x4742('0x2a')](_0x572793);}};}function respondWithFilteredResult(_0x30055e,_0x1aeb29){return function(_0x4da2cc){if(_0x4da2cc){var _0x42ee87=typeof _0x1aeb29[_0x4742('0x2b')]===_0x4742('0x2c')&&typeof _0x1aeb29['limit']===_0x4742('0x2c');var _0x3f1546=_0x4da2cc[_0x4742('0x2d')];var _0x15abd6=_0x42ee87?0x0:_0x1aeb29[_0x4742('0x2b')];var _0x12708e=_0x42ee87?_0x4da2cc[_0x4742('0x2d')]:_0x1aeb29[_0x4742('0x2b')]+_0x1aeb29[_0x4742('0x2e')];var _0x338b9c;if(_0x12708e>=_0x3f1546){_0x12708e=_0x3f1546;_0x338b9c=0xc8;}else{_0x338b9c=0xce;}_0x30055e[_0x4742('0x28')](_0x338b9c);return _0x30055e['set']('Content-Range',_0x15abd6+'-'+_0x12708e+'/'+_0x3f1546)[_0x4742('0x2a')](_0x4da2cc);}return null;};}function patchUpdates(_0x596c52){return function(_0x1069ef){try{jsonpatch[_0x4742('0x2f')](_0x1069ef,_0x596c52,!![]);}catch(_0x5b5555){return BPromise['reject'](_0x5b5555);}return _0x1069ef[_0x4742('0x30')]();};}function saveUpdates(_0x424155,_0x13917d){return function(_0x4bfc6f){if(_0x4bfc6f){return _0x4bfc6f[_0x4742('0x31')](_0x424155)[_0x4742('0x1e')](function(_0x369d43){return _0x369d43;});}return null;};}function removeEntity(_0x364e97,_0x204397){return function(_0x219550){if(_0x219550){return _0x219550['destroy']()[_0x4742('0x1e')](function(){var _0xb15f8f=_0x219550[_0x4742('0x32')]({'plain':!![]});var _0x3ab1fa=_0x4742('0x33');return db[_0x4742('0x34')][_0x4742('0x35')]({'where':{'type':_0x3ab1fa,'resourceId':_0xb15f8f['id']}})[_0x4742('0x1e')](function(){return _0x219550;});})['then'](function(){_0x364e97[_0x4742('0x28')](0xcc)[_0x4742('0x29')]();});}};}function handleEntityNotFound(_0x49ef67,_0x3c063a){return function(_0x155023){if(!_0x155023){_0x49ef67[_0x4742('0x27')](0x194);}return _0x155023;};}function handleError(_0x24a70b,_0x4d096e){_0x4d096e=_0x4d096e||0x1f4;return function(_0xcb0158){logger[_0x4742('0x24')](_0xcb0158[_0x4742('0x36')]);if(_0xcb0158[_0x4742('0x37')]){delete _0xcb0158[_0x4742('0x37')];}_0x24a70b[_0x4742('0x28')](_0x4d096e)[_0x4742('0x38')](_0xcb0158);};}exports[_0x4742('0x39')]=function(_0x4514f4,_0x3721c9){var _0x45d7c={},_0x315eac={},_0x8c82a0={'count':0x0,'rows':[]};var _0x55a1b7=_[_0x4742('0x3a')](db[_0x4742('0x3b')][_0x4742('0x3c')],function(_0x1e2052){return{'name':_0x1e2052['fieldName'],'type':_0x1e2052[_0x4742('0x3d')][_0x4742('0x3e')]};});_0x315eac['model']=_[_0x4742('0x3a')](_0x55a1b7,_0x4742('0x37'));_0x315eac['query']=_[_0x4742('0x3f')](_0x4514f4[_0x4742('0x40')]);_0x315eac[_0x4742('0x41')]=_[_0x4742('0x42')](_0x315eac[_0x4742('0x43')],_0x315eac[_0x4742('0x40')]);_0x45d7c[_0x4742('0x44')]=_[_0x4742('0x42')](_0x315eac[_0x4742('0x43')],qs[_0x4742('0x45')](_0x4514f4[_0x4742('0x40')]['fields']));_0x45d7c[_0x4742('0x44')]=_0x45d7c[_0x4742('0x44')]['length']?_0x45d7c[_0x4742('0x44')]:_0x315eac['model'];if(!_0x4514f4[_0x4742('0x40')][_0x4742('0x46')](_0x4742('0x47'))){_0x45d7c[_0x4742('0x2e')]=qs[_0x4742('0x2e')](_0x4514f4[_0x4742('0x40')][_0x4742('0x2e')]);_0x45d7c[_0x4742('0x2b')]=qs['offset'](_0x4514f4[_0x4742('0x40')]['offset']);}_0x45d7c['order']=qs[_0x4742('0x48')](_0x4514f4[_0x4742('0x40')]['sort']);_0x45d7c[_0x4742('0x49')]=qs[_0x4742('0x41')](_['pick'](_0x4514f4[_0x4742('0x40')],_0x315eac[_0x4742('0x41')]),_0x55a1b7);if(_0x4514f4['query'][_0x4742('0x4a')]){_0x45d7c[_0x4742('0x49')]=_[_0x4742('0x4b')](_0x45d7c[_0x4742('0x49')],{'$or':_[_0x4742('0x3a')](_0x55a1b7,function(_0x228276){if(_0x228276['type']!=='VIRTUAL'){var _0x20fb8e={};_0x20fb8e[_0x228276[_0x4742('0x37')]]={'$like':'%'+_0x4514f4[_0x4742('0x40')][_0x4742('0x4a')]+'%'};return _0x20fb8e;}})});}_0x45d7c=_[_0x4742('0x4b')]({},_0x45d7c,_0x4514f4['options']);var _0x17b24f={'where':_0x45d7c[_0x4742('0x49')]};return db['VoiceContext'][_0x4742('0x2d')](_0x17b24f)[_0x4742('0x1e')](function(_0x533b7a){_0x8c82a0[_0x4742('0x2d')]=_0x533b7a;if(_0x4514f4['query'][_0x4742('0x4c')]){_0x45d7c[_0x4742('0x4d')]=[{'all':!![]}];}return db[_0x4742('0x3b')][_0x4742('0x4e')](_0x45d7c);})[_0x4742('0x1e')](function(_0x3efa62){_0x8c82a0['rows']=_0x3efa62;return _0x8c82a0;})['then'](respondWithFilteredResult(_0x3721c9,_0x45d7c))[_0x4742('0x4f')](handleError(_0x3721c9,null));};exports['show']=function(_0xda6d27,_0x3d756e){var _0x26122a={'raw':![],'where':{'id':_0xda6d27[_0x4742('0x50')]['id']}},_0x13757a={};_0x13757a['model']=_['keys'](db['VoiceContext'][_0x4742('0x3c')]);_0x13757a['query']=_[_0x4742('0x3f')](_0xda6d27[_0x4742('0x40')]);_0x13757a[_0x4742('0x41')]=_['intersection'](_0x13757a['model'],_0x13757a[_0x4742('0x40')]);_0x26122a[_0x4742('0x44')]=_[_0x4742('0x42')](_0x13757a[_0x4742('0x43')],qs[_0x4742('0x45')](_0xda6d27[_0x4742('0x40')][_0x4742('0x45')]));_0x26122a['attributes']=_0x26122a[_0x4742('0x44')][_0x4742('0x51')]?_0x26122a[_0x4742('0x44')]:_0x13757a['model'];if(_0xda6d27[_0x4742('0x40')][_0x4742('0x4c')]){_0x26122a['include']=[{'all':!![]}];}_0x26122a=_['merge']({},_0x26122a,_0xda6d27[_0x4742('0x52')]);return db[_0x4742('0x3b')]['find'](_0x26122a)[_0x4742('0x1e')](handleEntityNotFound(_0x3d756e,null))[_0x4742('0x1e')](respondWithResult(_0x3d756e,null))[_0x4742('0x4f')](handleError(_0x3d756e,null));};exports[_0x4742('0x53')]=function(_0xbb48b0,_0x6160e8,_0x3a03cf){var _0x19333b;return db[_0x4742('0x3b')]['create'](_0xbb48b0[_0x4742('0x54')],{'raw':!![]})[_0x4742('0x1e')](function(_0x5ee86a){_0x19333b=_0x5ee86a;return db['VoiceContext'][_0x4742('0x4e')]({'raw':!![]});})[_0x4742('0x1e')](function(_0xf262c0){var _0x7a8a5b=fs[_0x4742('0x55')](path[_0x4742('0x56')](config[_0x4742('0x57')],_0x4742('0x58')),_0x4742('0x59'));var _0x31c0c0=ejs[_0x4742('0x5a')](_0x7a8a5b,{'contexts':_0xf262c0||[]});fs[_0x4742('0x5b')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x31c0c0);})[_0x4742('0x1e')](function(){return respondWithRpcPromise(_0x4742('0x5c'),_0x4742('0x53'),{'module':_0x4742('0x5d')});})[_0x4742('0x1e')](function(){var _0x227685=_0xbb48b0[_0x4742('0x5e')][_0x4742('0x32')]({'plain':!![]});if(!_0x227685)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x227685[_0x4742('0x5f')]===_0x4742('0x5e')){var _0xdd1bb1=_0x19333b['get']({'plain':!![]});return db['UserProfileSection'][_0x4742('0x60')]({'where':{'name':_0x4742('0x33'),'userProfileId':_0x227685['userProfileId']},'raw':!![]})[_0x4742('0x1e')](function(_0xb8fabb){if(_0xb8fabb&&_0xb8fabb[_0x4742('0x61')]===0x0){return db['UserProfileResource'][_0x4742('0x53')]({'name':_0xdd1bb1[_0x4742('0x37')],'resourceId':_0xdd1bb1['id'],'type':_0xb8fabb[_0x4742('0x37')],'sectionId':_0xb8fabb['id']},{})[_0x4742('0x1e')](function(){return _0x19333b;});}else{return _0x19333b;}})['catch'](function(_0x2f1c3b){logger[_0x4742('0x24')](_0x4742('0x62'),_0x2f1c3b);throw _0x2f1c3b;});}return _0x19333b;})[_0x4742('0x1e')](respondWithResult(_0x6160e8,0xc9))['catch'](handleError(_0x6160e8,null));};exports[_0x4742('0x31')]=function(_0x2fd389,_0x3e150b,_0x5f1730){var _0x43abac;return db[_0x4742('0x3b')][_0x4742('0x60')]({'where':{'id':_0x2fd389[_0x4742('0x50')]['id']}})[_0x4742('0x1e')](handleEntityNotFound(_0x3e150b,null))[_0x4742('0x1e')](saveUpdates(_0x2fd389[_0x4742('0x54')],null))[_0x4742('0x1e')](function(_0x3fb7b8){if(_0x3fb7b8){_0x43abac=_0x3fb7b8;return db[_0x4742('0x3b')][_0x4742('0x4e')]({'raw':!![]});}})['then'](function(_0x40d126){var _0x3951b2=fs[_0x4742('0x55')](path[_0x4742('0x56')](config[_0x4742('0x57')],'server/files/templates/context.ejs'),_0x4742('0x59'));var _0x4cf25f=ejs[_0x4742('0x5a')](_0x3951b2,{'contexts':_0x40d126||[]});fs[_0x4742('0x5b')](_0x4742('0x63'),_0x4cf25f);})[_0x4742('0x1e')](function(){return respondWithRpcPromise('Reload',_0x4742('0x31'),{'module':_0x4742('0x5d')});})['then'](function(){return _0x43abac;})[_0x4742('0x1e')](respondWithResult(_0x3e150b,null))[_0x4742('0x4f')](handleError(_0x3e150b,null));};exports['destroy']=function(_0x272164,_0x4c07c9,_0x438243){var _0x25e3d1;return db[_0x4742('0x3b')][_0x4742('0x60')]({'where':{'id':_0x272164[_0x4742('0x50')]['id']}})[_0x4742('0x1e')](handleEntityNotFound(_0x4c07c9,null))[_0x4742('0x1e')](removeEntity(_0x4c07c9,null))[_0x4742('0x1e')](function(){return db[_0x4742('0x3b')]['findAll']({'raw':!![]});})['then'](function(_0x1cec9d){var _0x191c40=fs['readFileSync'](path[_0x4742('0x56')](config['root'],'server/files/templates/context.ejs'),'utf8');var _0x40001d=ejs['render'](_0x191c40,{'contexts':_0x1cec9d});fs['writeFileSync'](_0x4742('0x63'),_0x40001d);return respondWithRpcPromise(_0x4742('0x5c'),_0x4742('0x35'),{'module':'chan_sip.so'});})[_0x4742('0x4f')](handleError(_0x4c07c9,null));};