Built motion from commit 9d0783e6.|2.6.13
[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 _0xdcbb=['../../components/auth/service','../../components/parsers/qs','../../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','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','status','json','offset','undefined','limit','count','set','Content-Range','reject','Contexts','UserProfileResource','end','stack','name','index','map','VoiceContext','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','options','includeAll','findAll','rows','show','rawAttributes','include','create','body','readFileSync','join','root','server/files/templates/context.ejs','utf8','render','Reload','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','update','params','writeFileSync','chan_sip.so','destroy','/etc/asterisk/extensions_xcally_contexts.conf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xdcbb,0x18f));var _0xbdcb=function(_0x5c771e,_0x2f1eef){_0x5c771e=_0x5c771e-0x0;var _0x4c3480=_0xdcbb[_0x5c771e];return _0x4c3480;};'use strict';var emlformat=require(_0xbdcb('0x0'));var rimraf=require(_0xbdcb('0x1'));var zipdir=require(_0xbdcb('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xbdcb('0x3'));var moment=require(_0xbdcb('0x4'));var BPromise=require(_0xbdcb('0x5'));var Mustache=require(_0xbdcb('0x6'));var util=require('util');var path=require(_0xbdcb('0x7'));var sox=require(_0xbdcb('0x8'));var csv=require('to-csv');var ejs=require(_0xbdcb('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xbdcb('0xa'));var squel=require(_0xbdcb('0xb'));var crypto=require(_0xbdcb('0xc'));var jsforce=require(_0xbdcb('0xd'));var deskjs=require(_0xbdcb('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xbdcb('0xf'));var Redis=require(_0xbdcb('0x10'));var authService=require(_0xbdcb('0x11'));var qs=require(_0xbdcb('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbdcb('0x13'));var logger=require(_0xbdcb('0x14'))('api');var utils=require(_0xbdcb('0x15'));var config=require(_0xbdcb('0x16'));var licenseUtil=require(_0xbdcb('0x17'));var db=require(_0xbdcb('0x18'))['db'];var jayson=require(_0xbdcb('0x19'));var client=jayson[_0xbdcb('0x1a')][_0xbdcb('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x5e005e,_0x2d9e88,_0x3583f6,_0x27fa9b){return new BPromise(function(_0x3f6e2a,_0x5626b6){var _0x33de0c=_0x27fa9b||client;return _0x33de0c[_0xbdcb('0x1c')](_0x5e005e,_0x3583f6)[_0xbdcb('0x1d')](function(_0x1a8904){logger[_0xbdcb('0x1e')](_0xbdcb('0x1f'),_0x2d9e88,'request\x20sent');logger[_0xbdcb('0x20')](_0xbdcb('0x21'),_0x2d9e88,_0xbdcb('0x22'),JSON[_0xbdcb('0x23')](_0x1a8904));if(_0x1a8904['error']){if(_0x1a8904[_0xbdcb('0x24')]['code']===0x1f4){logger['error'](_0xbdcb('0x1f'),_0x2d9e88,_0x1a8904[_0xbdcb('0x24')]['message']);return _0x5626b6(_0x1a8904[_0xbdcb('0x24')][_0xbdcb('0x25')]);}logger[_0xbdcb('0x24')](_0xbdcb('0x1f'),_0x2d9e88,_0x1a8904[_0xbdcb('0x24')]['message']);return _0x3f6e2a(_0x1a8904[_0xbdcb('0x24')][_0xbdcb('0x25')]);}else{logger['info'](_0xbdcb('0x1f'),_0x2d9e88,_0xbdcb('0x22'));_0x3f6e2a(_0x1a8904[_0xbdcb('0x26')][_0xbdcb('0x25')]);}})[_0xbdcb('0x27')](function(_0x2642fc){logger['error'](_0xbdcb('0x1f'),_0x2d9e88,_0x2642fc);_0x5626b6(_0x2642fc);});});}function respondWithStatusCode(_0x2f14c4,_0x11049f){_0x11049f=_0x11049f||0xcc;return function(_0x1c9302){if(_0x1c9302){return _0x2f14c4['sendStatus'](_0x11049f);}return _0x2f14c4[_0xbdcb('0x28')](_0x11049f)['end']();};}function respondWithResult(_0x3846dd,_0x1e3aa0){_0x1e3aa0=_0x1e3aa0||0xc8;return function(_0x4a35cf){if(_0x4a35cf){return _0x3846dd[_0xbdcb('0x28')](_0x1e3aa0)[_0xbdcb('0x29')](_0x4a35cf);}};}function respondWithFilteredResult(_0x3ea96d,_0x4384a6){return function(_0x31e294){if(_0x31e294){var _0x369b1c=typeof _0x4384a6[_0xbdcb('0x2a')]===_0xbdcb('0x2b')&&typeof _0x4384a6[_0xbdcb('0x2c')]===_0xbdcb('0x2b');var _0x1e7b93=_0x31e294[_0xbdcb('0x2d')];var _0x16b9d2=_0x369b1c?0x0:_0x4384a6['offset'];var _0x4927a9=_0x369b1c?_0x31e294[_0xbdcb('0x2d')]:_0x4384a6['offset']+_0x4384a6[_0xbdcb('0x2c')];var _0x4a2a4c;if(_0x4927a9>=_0x1e7b93){_0x4927a9=_0x1e7b93;_0x4a2a4c=0xc8;}else{_0x4a2a4c=0xce;}_0x3ea96d['status'](_0x4a2a4c);return _0x3ea96d[_0xbdcb('0x2e')](_0xbdcb('0x2f'),_0x16b9d2+'-'+_0x4927a9+'/'+_0x1e7b93)[_0xbdcb('0x29')](_0x31e294);}return null;};}function patchUpdates(_0x4c29fa){return function(_0xc86d49){try{jsonpatch['apply'](_0xc86d49,_0x4c29fa,!![]);}catch(_0x592fd5){return BPromise[_0xbdcb('0x30')](_0x592fd5);}return _0xc86d49['save']();};}function saveUpdates(_0x4d035a,_0x43b48c){return function(_0x4660a4){if(_0x4660a4){return _0x4660a4['update'](_0x4d035a)[_0xbdcb('0x1d')](function(_0x1dc9c9){return _0x1dc9c9;});}return null;};}function removeEntity(_0xfd392a,_0x4ad867){return function(_0x515e55){if(_0x515e55){return _0x515e55['destroy']()['then'](function(){var _0x30c31c=_0x515e55['get']({'plain':!![]});var _0x4d3394=_0xbdcb('0x31');return db[_0xbdcb('0x32')]['destroy']({'where':{'type':_0x4d3394,'resourceId':_0x30c31c['id']}})[_0xbdcb('0x1d')](function(){return _0x515e55;});})[_0xbdcb('0x1d')](function(){_0xfd392a['status'](0xcc)[_0xbdcb('0x33')]();});}};}function handleEntityNotFound(_0x38ed75,_0x40212d){return function(_0x3a822d){if(!_0x3a822d){_0x38ed75['sendStatus'](0x194);}return _0x3a822d;};}function handleError(_0x5a59aa,_0x599219){_0x599219=_0x599219||0x1f4;return function(_0xc85f9c){logger[_0xbdcb('0x24')](_0xc85f9c[_0xbdcb('0x34')]);if(_0xc85f9c[_0xbdcb('0x35')]){delete _0xc85f9c[_0xbdcb('0x35')];}_0x5a59aa['status'](_0x599219)['send'](_0xc85f9c);};}exports[_0xbdcb('0x36')]=function(_0x16a5ae,_0x59003a){var _0x2abc66={},_0x23cc12={},_0x84285c={'count':0x0,'rows':[]};var _0x1161f3=_[_0xbdcb('0x37')](db[_0xbdcb('0x38')]['rawAttributes'],function(_0x3c44e0){return{'name':_0x3c44e0[_0xbdcb('0x39')],'type':_0x3c44e0[_0xbdcb('0x3a')][_0xbdcb('0x3b')]};});_0x23cc12['model']=_[_0xbdcb('0x37')](_0x1161f3,_0xbdcb('0x35'));_0x23cc12[_0xbdcb('0x3c')]=_[_0xbdcb('0x3d')](_0x16a5ae[_0xbdcb('0x3c')]);_0x23cc12[_0xbdcb('0x3e')]=_[_0xbdcb('0x3f')](_0x23cc12[_0xbdcb('0x40')],_0x23cc12[_0xbdcb('0x3c')]);_0x2abc66[_0xbdcb('0x41')]=_[_0xbdcb('0x3f')](_0x23cc12[_0xbdcb('0x40')],qs['fields'](_0x16a5ae['query'][_0xbdcb('0x42')]));_0x2abc66['attributes']=_0x2abc66[_0xbdcb('0x41')][_0xbdcb('0x43')]?_0x2abc66['attributes']:_0x23cc12['model'];if(!_0x16a5ae['query'][_0xbdcb('0x44')](_0xbdcb('0x45'))){_0x2abc66[_0xbdcb('0x2c')]=qs[_0xbdcb('0x2c')](_0x16a5ae[_0xbdcb('0x3c')][_0xbdcb('0x2c')]);_0x2abc66['offset']=qs[_0xbdcb('0x2a')](_0x16a5ae[_0xbdcb('0x3c')][_0xbdcb('0x2a')]);}_0x2abc66[_0xbdcb('0x46')]=qs[_0xbdcb('0x47')](_0x16a5ae[_0xbdcb('0x3c')][_0xbdcb('0x47')]);_0x2abc66[_0xbdcb('0x48')]=qs[_0xbdcb('0x3e')](_['pick'](_0x16a5ae[_0xbdcb('0x3c')],_0x23cc12[_0xbdcb('0x3e')]),_0x1161f3);if(_0x16a5ae[_0xbdcb('0x3c')][_0xbdcb('0x49')]){_0x2abc66[_0xbdcb('0x48')]=_[_0xbdcb('0x4a')](_0x2abc66[_0xbdcb('0x48')],{'$or':_['map'](_0x1161f3,function(_0x19af20){if(_0x19af20[_0xbdcb('0x3a')]!=='VIRTUAL'){var _0x687315={};_0x687315[_0x19af20[_0xbdcb('0x35')]]={'$like':'%'+_0x16a5ae['query'][_0xbdcb('0x49')]+'%'};return _0x687315;}})});}_0x2abc66=_['merge']({},_0x2abc66,_0x16a5ae[_0xbdcb('0x4b')]);var _0x31f56c={'where':_0x2abc66[_0xbdcb('0x48')]};return db[_0xbdcb('0x38')]['count'](_0x31f56c)[_0xbdcb('0x1d')](function(_0x403dc4){_0x84285c[_0xbdcb('0x2d')]=_0x403dc4;if(_0x16a5ae[_0xbdcb('0x3c')][_0xbdcb('0x4c')]){_0x2abc66['include']=[{'all':!![]}];}return db[_0xbdcb('0x38')][_0xbdcb('0x4d')](_0x2abc66);})[_0xbdcb('0x1d')](function(_0x13541b){_0x84285c[_0xbdcb('0x4e')]=_0x13541b;return _0x84285c;})[_0xbdcb('0x1d')](respondWithFilteredResult(_0x59003a,_0x2abc66))[_0xbdcb('0x27')](handleError(_0x59003a,null));};exports[_0xbdcb('0x4f')]=function(_0x5c5b42,_0x2259f6){var _0x2c6aae={'raw':![],'where':{'id':_0x5c5b42['params']['id']}},_0x46318a={};_0x46318a[_0xbdcb('0x40')]=_[_0xbdcb('0x3d')](db[_0xbdcb('0x38')][_0xbdcb('0x50')]);_0x46318a[_0xbdcb('0x3c')]=_['keys'](_0x5c5b42[_0xbdcb('0x3c')]);_0x46318a[_0xbdcb('0x3e')]=_[_0xbdcb('0x3f')](_0x46318a[_0xbdcb('0x40')],_0x46318a[_0xbdcb('0x3c')]);_0x2c6aae[_0xbdcb('0x41')]=_[_0xbdcb('0x3f')](_0x46318a['model'],qs[_0xbdcb('0x42')](_0x5c5b42[_0xbdcb('0x3c')][_0xbdcb('0x42')]));_0x2c6aae['attributes']=_0x2c6aae[_0xbdcb('0x41')][_0xbdcb('0x43')]?_0x2c6aae[_0xbdcb('0x41')]:_0x46318a[_0xbdcb('0x40')];if(_0x5c5b42[_0xbdcb('0x3c')][_0xbdcb('0x4c')]){_0x2c6aae[_0xbdcb('0x51')]=[{'all':!![]}];}_0x2c6aae=_[_0xbdcb('0x4a')]({},_0x2c6aae,_0x5c5b42[_0xbdcb('0x4b')]);return db['VoiceContext']['find'](_0x2c6aae)[_0xbdcb('0x1d')](handleEntityNotFound(_0x2259f6,null))[_0xbdcb('0x1d')](respondWithResult(_0x2259f6,null))['catch'](handleError(_0x2259f6,null));};exports[_0xbdcb('0x52')]=function(_0x33ea72,_0x1b00b5,_0x177e32){var _0x1bf418;return db[_0xbdcb('0x38')][_0xbdcb('0x52')](_0x33ea72[_0xbdcb('0x53')],{'raw':!![]})[_0xbdcb('0x1d')](function(_0x12bfc1){_0x1bf418=_0x12bfc1;return db[_0xbdcb('0x38')][_0xbdcb('0x4d')]({'raw':!![]});})['then'](function(_0x2ef47d){var _0x2b7770=fs[_0xbdcb('0x54')](path[_0xbdcb('0x55')](config[_0xbdcb('0x56')],_0xbdcb('0x57')),_0xbdcb('0x58'));var _0x409d16=ejs[_0xbdcb('0x59')](_0x2b7770,{'contexts':_0x2ef47d||[]});fs['writeFileSync']('/etc/asterisk/extensions_xcally_contexts.conf',_0x409d16);})[_0xbdcb('0x1d')](function(){return respondWithRpcPromise(_0xbdcb('0x5a'),_0xbdcb('0x52'),{'module':'chan_sip.so'});})[_0xbdcb('0x1d')](function(){var _0x15f67c=_0x33ea72[_0xbdcb('0x5b')][_0xbdcb('0x5c')]({'plain':!![]});if(!_0x15f67c)throw new Error(_0xbdcb('0x5d'));if(_0x15f67c[_0xbdcb('0x5e')]===_0xbdcb('0x5b')){var _0x5e05ef=_0x1bf418[_0xbdcb('0x5c')]({'plain':!![]});return db[_0xbdcb('0x5f')][_0xbdcb('0x60')]({'where':{'name':_0xbdcb('0x31'),'userProfileId':_0x15f67c[_0xbdcb('0x61')]},'raw':!![]})['then'](function(_0x2771bb){if(_0x2771bb&&_0x2771bb['autoAssociation']===0x0){return db[_0xbdcb('0x32')][_0xbdcb('0x52')]({'name':_0x5e05ef['name'],'resourceId':_0x5e05ef['id'],'type':_0x2771bb[_0xbdcb('0x35')],'sectionId':_0x2771bb['id']},{})[_0xbdcb('0x1d')](function(){return _0x1bf418;});}else{return _0x1bf418;}})[_0xbdcb('0x27')](function(_0x2f4b43){logger[_0xbdcb('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2f4b43);throw _0x2f4b43;});}return _0x1bf418;})[_0xbdcb('0x1d')](respondWithResult(_0x1b00b5,0xc9))['catch'](handleError(_0x1b00b5,null));};exports[_0xbdcb('0x62')]=function(_0x788a58,_0x421b91,_0x57facd){var _0x2e6729;return db['VoiceContext'][_0xbdcb('0x60')]({'where':{'id':_0x788a58[_0xbdcb('0x63')]['id']}})[_0xbdcb('0x1d')](handleEntityNotFound(_0x421b91,null))['then'](saveUpdates(_0x788a58[_0xbdcb('0x53')],null))[_0xbdcb('0x1d')](function(_0x28079c){if(_0x28079c){_0x2e6729=_0x28079c;return db[_0xbdcb('0x38')]['findAll']({'raw':!![]});}})[_0xbdcb('0x1d')](function(_0x54977d){var _0x142f36=fs[_0xbdcb('0x54')](path[_0xbdcb('0x55')](config[_0xbdcb('0x56')],_0xbdcb('0x57')),_0xbdcb('0x58'));var _0x58e0c9=ejs['render'](_0x142f36,{'contexts':_0x54977d||[]});fs[_0xbdcb('0x64')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x58e0c9);})[_0xbdcb('0x1d')](function(){return respondWithRpcPromise(_0xbdcb('0x5a'),_0xbdcb('0x62'),{'module':_0xbdcb('0x65')});})[_0xbdcb('0x1d')](function(){return _0x2e6729;})[_0xbdcb('0x1d')](respondWithResult(_0x421b91,null))['catch'](handleError(_0x421b91,null));};exports[_0xbdcb('0x66')]=function(_0x425015,_0x331782,_0x1e62bd){var _0x494478;return db[_0xbdcb('0x38')][_0xbdcb('0x60')]({'where':{'id':_0x425015[_0xbdcb('0x63')]['id']}})['then'](handleEntityNotFound(_0x331782,null))['then'](removeEntity(_0x331782,null))[_0xbdcb('0x1d')](function(){return db[_0xbdcb('0x38')][_0xbdcb('0x4d')]({'raw':!![]});})[_0xbdcb('0x1d')](function(_0xaefb3a){var _0xdb01dc=fs[_0xbdcb('0x54')](path[_0xbdcb('0x55')](config[_0xbdcb('0x56')],_0xbdcb('0x57')),_0xbdcb('0x58'));var _0x19205b=ejs[_0xbdcb('0x59')](_0xdb01dc,{'contexts':_0xaefb3a});fs[_0xbdcb('0x64')](_0xbdcb('0x67'),_0x19205b);return respondWithRpcPromise(_0xbdcb('0x5a'),_0xbdcb('0x66'),{'module':_0xbdcb('0x65')});})[_0xbdcb('0x27')](handleError(_0x331782,null));};