Built motion from commit 58b0471d.|2.6.29
[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 _0xa082=['debug','stringify','error','code','message','result','catch','sendStatus','end','status','offset','undefined','limit','count','Content-Range','apply','reject','save','update','get','UserProfileResource','stack','name','send','index','VoiceContext','rawAttributes','fieldName','type','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','include','findAll','rows','show','find','create','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Contexts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','body','readFileSync','destroy','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','client','http','request','then','VoiceContext,\x20%s,\x20%s','request\x20sent'];(function(_0x2e865d,_0x51a11a){var _0x11f353=function(_0x150389){while(--_0x150389){_0x2e865d['push'](_0x2e865d['shift']());}};_0x11f353(++_0x51a11a);}(_0xa082,0x1f3));var _0x2a08=function(_0x4d613c,_0x55f220){_0x4d613c=_0x4d613c-0x0;var _0x301fe3=_0xa082[_0x4d613c];return _0x301fe3;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2a08('0x0'));var zipdir=require(_0x2a08('0x1'));var jsonpatch=require(_0x2a08('0x2'));var rp=require(_0x2a08('0x3'));var moment=require('moment');var BPromise=require(_0x2a08('0x4'));var Mustache=require(_0x2a08('0x5'));var util=require(_0x2a08('0x6'));var path=require(_0x2a08('0x7'));var sox=require(_0x2a08('0x8'));var csv=require(_0x2a08('0x9'));var ejs=require(_0x2a08('0xa'));var fs=require('fs');var fs_extra=require(_0x2a08('0xb'));var _=require('lodash');var squel=require(_0x2a08('0xc'));var crypto=require('crypto');var jsforce=require(_0x2a08('0xd'));var deskjs=require(_0x2a08('0xe'));var toCsv=require(_0x2a08('0x9'));var querystring=require(_0x2a08('0xf'));var Papa=require(_0x2a08('0x10'));var Redis=require('ioredis');var authService=require(_0x2a08('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x2a08('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2a08('0x13'))(_0x2a08('0x14'));var utils=require(_0x2a08('0x15'));var config=require(_0x2a08('0x16'));var licenseUtil=require(_0x2a08('0x17'));var db=require(_0x2a08('0x18'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x2a08('0x19')][_0x2a08('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x233fb3,_0x38f91c,_0x36e83c,_0x4612ba){return new BPromise(function(_0x38dbf5,_0x1d3a5f){var _0x35667a=_0x4612ba||client;return _0x35667a[_0x2a08('0x1b')](_0x233fb3,_0x36e83c)[_0x2a08('0x1c')](function(_0x375af1){logger['info'](_0x2a08('0x1d'),_0x38f91c,_0x2a08('0x1e'));logger[_0x2a08('0x1f')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x38f91c,'request\x20sent',JSON[_0x2a08('0x20')](_0x375af1));if(_0x375af1[_0x2a08('0x21')]){if(_0x375af1[_0x2a08('0x21')][_0x2a08('0x22')]===0x1f4){logger['error'](_0x2a08('0x1d'),_0x38f91c,_0x375af1['error']['message']);return _0x1d3a5f(_0x375af1[_0x2a08('0x21')][_0x2a08('0x23')]);}logger['error'](_0x2a08('0x1d'),_0x38f91c,_0x375af1[_0x2a08('0x21')][_0x2a08('0x23')]);return _0x38dbf5(_0x375af1['error'][_0x2a08('0x23')]);}else{logger['info']('VoiceContext,\x20%s,\x20%s',_0x38f91c,'request\x20sent');_0x38dbf5(_0x375af1[_0x2a08('0x24')][_0x2a08('0x23')]);}})[_0x2a08('0x25')](function(_0x207186){logger[_0x2a08('0x21')](_0x2a08('0x1d'),_0x38f91c,_0x207186);_0x1d3a5f(_0x207186);});});}function respondWithStatusCode(_0x2744fc,_0x2ba862){_0x2ba862=_0x2ba862||0xcc;return function(_0x3e4819){if(_0x3e4819){return _0x2744fc[_0x2a08('0x26')](_0x2ba862);}return _0x2744fc['status'](_0x2ba862)[_0x2a08('0x27')]();};}function respondWithResult(_0xa3e4a3,_0x21f66f){_0x21f66f=_0x21f66f||0xc8;return function(_0x4134d9){if(_0x4134d9){return _0xa3e4a3[_0x2a08('0x28')](_0x21f66f)['json'](_0x4134d9);}};}function respondWithFilteredResult(_0x58ae00,_0x24e705){return function(_0x1d79f5){if(_0x1d79f5){var _0x530348=typeof _0x24e705[_0x2a08('0x29')]===_0x2a08('0x2a')&&typeof _0x24e705[_0x2a08('0x2b')]===_0x2a08('0x2a');var _0x5a5139=_0x1d79f5[_0x2a08('0x2c')];var _0x49867c=_0x530348?0x0:_0x24e705[_0x2a08('0x29')];var _0x453e6a=_0x530348?_0x1d79f5[_0x2a08('0x2c')]:_0x24e705[_0x2a08('0x29')]+_0x24e705[_0x2a08('0x2b')];var _0x9c3444;if(_0x453e6a>=_0x5a5139){_0x453e6a=_0x5a5139;_0x9c3444=0xc8;}else{_0x9c3444=0xce;}_0x58ae00[_0x2a08('0x28')](_0x9c3444);return _0x58ae00['set'](_0x2a08('0x2d'),_0x49867c+'-'+_0x453e6a+'/'+_0x5a5139)['json'](_0x1d79f5);}return null;};}function patchUpdates(_0x1c1985){return function(_0x5a1594){try{jsonpatch[_0x2a08('0x2e')](_0x5a1594,_0x1c1985,!![]);}catch(_0x1d546a){return BPromise[_0x2a08('0x2f')](_0x1d546a);}return _0x5a1594[_0x2a08('0x30')]();};}function saveUpdates(_0x3d68da,_0x3d2324){return function(_0x1d9099){if(_0x1d9099){return _0x1d9099[_0x2a08('0x31')](_0x3d68da)['then'](function(_0x51e23c){return _0x51e23c;});}return null;};}function removeEntity(_0x47f688,_0x5a9530){return function(_0x277931){if(_0x277931){return _0x277931['destroy']()[_0x2a08('0x1c')](function(){var _0xfcbbe=_0x277931[_0x2a08('0x32')]({'plain':!![]});var _0x5a1837='Contexts';return db[_0x2a08('0x33')]['destroy']({'where':{'type':_0x5a1837,'resourceId':_0xfcbbe['id']}})[_0x2a08('0x1c')](function(){return _0x277931;});})[_0x2a08('0x1c')](function(){_0x47f688[_0x2a08('0x28')](0xcc)[_0x2a08('0x27')]();});}};}function handleEntityNotFound(_0x4fc3f3,_0x18f4b0){return function(_0x487555){if(!_0x487555){_0x4fc3f3['sendStatus'](0x194);}return _0x487555;};}function handleError(_0xeb5d7d,_0x2c4a52){_0x2c4a52=_0x2c4a52||0x1f4;return function(_0x5467a7){logger['error'](_0x5467a7[_0x2a08('0x34')]);if(_0x5467a7[_0x2a08('0x35')]){delete _0x5467a7[_0x2a08('0x35')];}_0xeb5d7d['status'](_0x2c4a52)[_0x2a08('0x36')](_0x5467a7);};}exports[_0x2a08('0x37')]=function(_0x5b12b0,_0x4a00f8){var _0x608a74={},_0x22e371={},_0x1b24f1={'count':0x0,'rows':[]};var _0x21fab7=_['map'](db[_0x2a08('0x38')][_0x2a08('0x39')],function(_0x2954c4){return{'name':_0x2954c4[_0x2a08('0x3a')],'type':_0x2954c4[_0x2a08('0x3b')]['key']};});_0x22e371[_0x2a08('0x3c')]=_[_0x2a08('0x3d')](_0x21fab7,_0x2a08('0x35'));_0x22e371[_0x2a08('0x3e')]=_[_0x2a08('0x3f')](_0x5b12b0[_0x2a08('0x3e')]);_0x22e371['filters']=_[_0x2a08('0x40')](_0x22e371[_0x2a08('0x3c')],_0x22e371[_0x2a08('0x3e')]);_0x608a74[_0x2a08('0x41')]=_[_0x2a08('0x40')](_0x22e371[_0x2a08('0x3c')],qs[_0x2a08('0x42')](_0x5b12b0[_0x2a08('0x3e')][_0x2a08('0x42')]));_0x608a74[_0x2a08('0x41')]=_0x608a74[_0x2a08('0x41')][_0x2a08('0x43')]?_0x608a74['attributes']:_0x22e371[_0x2a08('0x3c')];if(!_0x5b12b0[_0x2a08('0x3e')][_0x2a08('0x44')](_0x2a08('0x45'))){_0x608a74[_0x2a08('0x2b')]=qs[_0x2a08('0x2b')](_0x5b12b0['query']['limit']);_0x608a74[_0x2a08('0x29')]=qs['offset'](_0x5b12b0[_0x2a08('0x3e')][_0x2a08('0x29')]);}_0x608a74[_0x2a08('0x46')]=qs[_0x2a08('0x47')](_0x5b12b0[_0x2a08('0x3e')][_0x2a08('0x47')]);_0x608a74[_0x2a08('0x48')]=qs[_0x2a08('0x49')](_[_0x2a08('0x4a')](_0x5b12b0['query'],_0x22e371[_0x2a08('0x49')]),_0x21fab7);if(_0x5b12b0['query'][_0x2a08('0x4b')]){_0x608a74[_0x2a08('0x48')]=_[_0x2a08('0x4c')](_0x608a74[_0x2a08('0x48')],{'$or':_[_0x2a08('0x3d')](_0x21fab7,function(_0x7c9c5f){if(_0x7c9c5f[_0x2a08('0x3b')]!==_0x2a08('0x4d')){var _0x33540e={};_0x33540e[_0x7c9c5f[_0x2a08('0x35')]]={'$like':'%'+_0x5b12b0[_0x2a08('0x3e')][_0x2a08('0x4b')]+'%'};return _0x33540e;}})});}_0x608a74=_[_0x2a08('0x4c')]({},_0x608a74,_0x5b12b0[_0x2a08('0x4e')]);var _0x2c826a={'where':_0x608a74['where']};return db[_0x2a08('0x38')][_0x2a08('0x2c')](_0x2c826a)[_0x2a08('0x1c')](function(_0x3f821c){_0x1b24f1[_0x2a08('0x2c')]=_0x3f821c;if(_0x5b12b0[_0x2a08('0x3e')]['includeAll']){_0x608a74[_0x2a08('0x4f')]=[{'all':!![]}];}return db[_0x2a08('0x38')][_0x2a08('0x50')](_0x608a74);})['then'](function(_0x50b67f){_0x1b24f1[_0x2a08('0x51')]=_0x50b67f;return _0x1b24f1;})[_0x2a08('0x1c')](respondWithFilteredResult(_0x4a00f8,_0x608a74))[_0x2a08('0x25')](handleError(_0x4a00f8,null));};exports[_0x2a08('0x52')]=function(_0x3e2e81,_0x255e42){var _0x42986e={'raw':![],'where':{'id':_0x3e2e81['params']['id']}},_0x4baedf={};_0x4baedf['model']=_[_0x2a08('0x3f')](db[_0x2a08('0x38')][_0x2a08('0x39')]);_0x4baedf[_0x2a08('0x3e')]=_[_0x2a08('0x3f')](_0x3e2e81[_0x2a08('0x3e')]);_0x4baedf[_0x2a08('0x49')]=_[_0x2a08('0x40')](_0x4baedf[_0x2a08('0x3c')],_0x4baedf[_0x2a08('0x3e')]);_0x42986e['attributes']=_[_0x2a08('0x40')](_0x4baedf[_0x2a08('0x3c')],qs['fields'](_0x3e2e81[_0x2a08('0x3e')][_0x2a08('0x42')]));_0x42986e['attributes']=_0x42986e['attributes'][_0x2a08('0x43')]?_0x42986e['attributes']:_0x4baedf[_0x2a08('0x3c')];if(_0x3e2e81['query']['includeAll']){_0x42986e[_0x2a08('0x4f')]=[{'all':!![]}];}_0x42986e=_[_0x2a08('0x4c')]({},_0x42986e,_0x3e2e81[_0x2a08('0x4e')]);return db['VoiceContext'][_0x2a08('0x53')](_0x42986e)[_0x2a08('0x1c')](handleEntityNotFound(_0x255e42,null))[_0x2a08('0x1c')](respondWithResult(_0x255e42,null))[_0x2a08('0x25')](handleError(_0x255e42,null));};exports[_0x2a08('0x54')]=function(_0x3a5219,_0x134e9c,_0xa4bd18){var _0x27e058;return db[_0x2a08('0x38')]['create'](_0x3a5219['body'],{'raw':!![]})[_0x2a08('0x1c')](function(_0x510288){_0x27e058=_0x510288;return db[_0x2a08('0x38')][_0x2a08('0x50')]({'raw':!![]});})[_0x2a08('0x1c')](function(_0x1a5a2b){var _0x2cb410=fs['readFileSync'](path[_0x2a08('0x55')](config[_0x2a08('0x56')],_0x2a08('0x57')),_0x2a08('0x58'));var _0x2409bf=ejs[_0x2a08('0x59')](_0x2cb410,{'contexts':_0x1a5a2b||[]});fs[_0x2a08('0x5a')](_0x2a08('0x5b'),_0x2409bf);})[_0x2a08('0x1c')](function(){return respondWithRpcPromise(_0x2a08('0x5c'),_0x2a08('0x54'),{'module':_0x2a08('0x5d')});})[_0x2a08('0x1c')](function(){var _0x206ec1=_0x3a5219[_0x2a08('0x5e')][_0x2a08('0x32')]({'plain':!![]});if(!_0x206ec1)throw new Error(_0x2a08('0x5f'));if(_0x206ec1[_0x2a08('0x60')]==='user'){var _0x121f8c=_0x27e058[_0x2a08('0x32')]({'plain':!![]});return db[_0x2a08('0x61')]['find']({'where':{'name':_0x2a08('0x62'),'userProfileId':_0x206ec1[_0x2a08('0x63')]},'raw':!![]})[_0x2a08('0x1c')](function(_0x1476ad){if(_0x1476ad&&_0x1476ad[_0x2a08('0x64')]===0x0){return db[_0x2a08('0x33')][_0x2a08('0x54')]({'name':_0x121f8c[_0x2a08('0x35')],'resourceId':_0x121f8c['id'],'type':_0x1476ad[_0x2a08('0x35')],'sectionId':_0x1476ad['id']},{})[_0x2a08('0x1c')](function(){return _0x27e058;});}else{return _0x27e058;}})['catch'](function(_0x473194){logger[_0x2a08('0x21')](_0x2a08('0x65'),_0x473194);throw _0x473194;});}return _0x27e058;})['then'](respondWithResult(_0x134e9c,0xc9))[_0x2a08('0x25')](handleError(_0x134e9c,null));};exports['update']=function(_0x5eec3a,_0x239153,_0x4fc543){var _0x2b0111;return db[_0x2a08('0x38')][_0x2a08('0x53')]({'where':{'id':_0x5eec3a[_0x2a08('0x66')]['id']}})['then'](handleEntityNotFound(_0x239153,null))[_0x2a08('0x1c')](saveUpdates(_0x5eec3a[_0x2a08('0x67')],null))[_0x2a08('0x1c')](function(_0x5118ab){if(_0x5118ab){_0x2b0111=_0x5118ab;return db[_0x2a08('0x38')][_0x2a08('0x50')]({'raw':!![]});}})['then'](function(_0x18b82e){var _0x540f27=fs[_0x2a08('0x68')](path[_0x2a08('0x55')](config[_0x2a08('0x56')],'server/files/templates/context.ejs'),_0x2a08('0x58'));var _0x1f5449=ejs[_0x2a08('0x59')](_0x540f27,{'contexts':_0x18b82e||[]});fs[_0x2a08('0x5a')](_0x2a08('0x5b'),_0x1f5449);})[_0x2a08('0x1c')](function(){return respondWithRpcPromise('Reload',_0x2a08('0x31'),{'module':_0x2a08('0x5d')});})[_0x2a08('0x1c')](function(){return _0x2b0111;})[_0x2a08('0x1c')](respondWithResult(_0x239153,null))[_0x2a08('0x25')](handleError(_0x239153,null));};exports['destroy']=function(_0x1fe632,_0x28264b,_0x275ec4){var _0x21c12a;return db[_0x2a08('0x38')][_0x2a08('0x53')]({'where':{'id':_0x1fe632[_0x2a08('0x66')]['id']}})[_0x2a08('0x1c')](handleEntityNotFound(_0x28264b,null))['then'](removeEntity(_0x28264b,null))[_0x2a08('0x1c')](function(){return db['VoiceContext'][_0x2a08('0x50')]({'raw':!![]});})[_0x2a08('0x1c')](function(_0x2637f6){var _0x14bfdd=fs[_0x2a08('0x68')](path[_0x2a08('0x55')](config['root'],'server/files/templates/context.ejs'),_0x2a08('0x58'));var _0x3911f5=ejs['render'](_0x14bfdd,{'contexts':_0x2637f6});fs[_0x2a08('0x5a')](_0x2a08('0x5b'),_0x3911f5);return respondWithRpcPromise(_0x2a08('0x5c'),_0x2a08('0x69'),{'module':_0x2a08('0x5d')});})[_0x2a08('0x25')](handleError(_0x28264b,null));};