Built motion from commit 753c950e.|2.5.42
[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 _0x09a0=['include','findAll','catch','params','find','create','body','readFileSync','join','root','server/files/templates/context.ejs','utf8','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','render','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','jayson/promise','client','http','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','status','end','json','offset','undefined','count','limit','Content-Range','apply','save','update','then','destroy','Contexts','UserProfileResource','sendStatus','name','send','VoiceContext','rawAttributes','fieldName','type','model','map','keys','query','filters','attributes','intersection','fields','length','sort','where','pick','filter','merge','VIRTUAL','options','includeAll'];(function(_0x3ff59d,_0x209599){var _0x221f59=function(_0x121af2){while(--_0x121af2){_0x3ff59d['push'](_0x3ff59d['shift']());}};_0x221f59(++_0x209599);}(_0x09a0,0x7a));var _0x009a=function(_0x260764,_0x2f3fc8){_0x260764=_0x260764-0x0;var _0x383e35=_0x09a0[_0x260764];return _0x383e35;};'use strict';var emlformat=require(_0x009a('0x0'));var rimraf=require(_0x009a('0x1'));var zipdir=require(_0x009a('0x2'));var jsonpatch=require(_0x009a('0x3'));var rp=require(_0x009a('0x4'));var moment=require(_0x009a('0x5'));var BPromise=require(_0x009a('0x6'));var Mustache=require(_0x009a('0x7'));var util=require(_0x009a('0x8'));var path=require(_0x009a('0x9'));var sox=require(_0x009a('0xa'));var csv=require('to-csv');var ejs=require(_0x009a('0xb'));var fs=require('fs');var fs_extra=require(_0x009a('0xc'));var _=require(_0x009a('0xd'));var squel=require(_0x009a('0xe'));var crypto=require(_0x009a('0xf'));var jsforce=require(_0x009a('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x009a('0x11'));var querystring=require(_0x009a('0x12'));var Papa=require(_0x009a('0x13'));var Redis=require(_0x009a('0x14'));var authService=require(_0x009a('0x15'));var qs=require(_0x009a('0x16'));var as=require(_0x009a('0x17'));var hardwareService=require(_0x009a('0x18'));var logger=require(_0x009a('0x19'))(_0x009a('0x1a'));var utils=require(_0x009a('0x1b'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x009a('0x1c'))['db'];var jayson=require(_0x009a('0x1d'));var client=jayson[_0x009a('0x1e')][_0x009a('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x44fd20,_0x474061,_0x3bbe01,_0x36bddc){return new BPromise(function(_0x30980a,_0x5e5c35){var _0x275586=_0x36bddc||client;return _0x275586['request'](_0x44fd20,_0x3bbe01)['then'](function(_0x5c6900){logger[_0x009a('0x20')](_0x009a('0x21'),_0x474061,_0x009a('0x22'));logger[_0x009a('0x23')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x474061,'request\x20sent',JSON[_0x009a('0x24')](_0x5c6900));if(_0x5c6900[_0x009a('0x25')]){if(_0x5c6900[_0x009a('0x25')][_0x009a('0x26')]===0x1f4){logger['error'](_0x009a('0x21'),_0x474061,_0x5c6900['error'][_0x009a('0x27')]);return _0x5e5c35(_0x5c6900['error']['message']);}logger[_0x009a('0x25')](_0x009a('0x21'),_0x474061,_0x5c6900[_0x009a('0x25')][_0x009a('0x27')]);return _0x30980a(_0x5c6900[_0x009a('0x25')][_0x009a('0x27')]);}else{logger[_0x009a('0x20')](_0x009a('0x21'),_0x474061,_0x009a('0x22'));_0x30980a(_0x5c6900[_0x009a('0x28')]['message']);}})['catch'](function(_0x2ec76e){logger[_0x009a('0x25')](_0x009a('0x21'),_0x474061,_0x2ec76e);_0x5e5c35(_0x2ec76e);});});}function respondWithStatusCode(_0x4a569e,_0x494d7e){_0x494d7e=_0x494d7e||0xcc;return function(_0x4c14c6){if(_0x4c14c6){return _0x4a569e['sendStatus'](_0x494d7e);}return _0x4a569e[_0x009a('0x29')](_0x494d7e)[_0x009a('0x2a')]();};}function respondWithResult(_0x360dd6,_0x560cc5){_0x560cc5=_0x560cc5||0xc8;return function(_0x4446fe){if(_0x4446fe){return _0x360dd6['status'](_0x560cc5)[_0x009a('0x2b')](_0x4446fe);}};}function respondWithFilteredResult(_0x45ad4d,_0x5d58eb){return function(_0x395e14){if(_0x395e14){var _0x1b6750=typeof _0x5d58eb[_0x009a('0x2c')]===_0x009a('0x2d')&&typeof _0x5d58eb['limit']==='undefined';var _0x5b67aa=_0x395e14[_0x009a('0x2e')];var _0x320f8e=_0x1b6750?0x0:_0x5d58eb[_0x009a('0x2c')];var _0x463323=_0x1b6750?_0x395e14[_0x009a('0x2e')]:_0x5d58eb[_0x009a('0x2c')]+_0x5d58eb[_0x009a('0x2f')];var _0x3e3c34;if(_0x463323>=_0x5b67aa){_0x463323=_0x5b67aa;_0x3e3c34=0xc8;}else{_0x3e3c34=0xce;}_0x45ad4d['status'](_0x3e3c34);return _0x45ad4d['set'](_0x009a('0x30'),_0x320f8e+'-'+_0x463323+'/'+_0x5b67aa)[_0x009a('0x2b')](_0x395e14);}return null;};}function patchUpdates(_0x1fb938){return function(_0x3ab5bf){try{jsonpatch[_0x009a('0x31')](_0x3ab5bf,_0x1fb938,!![]);}catch(_0x1a697d){return BPromise['reject'](_0x1a697d);}return _0x3ab5bf[_0x009a('0x32')]();};}function saveUpdates(_0xe79c32,_0x307e88){return function(_0x5185cf){if(_0x5185cf){return _0x5185cf[_0x009a('0x33')](_0xe79c32)[_0x009a('0x34')](function(_0x54dc0b){return _0x54dc0b;});}return null;};}function removeEntity(_0x3cc551,_0x23d385){return function(_0x4710c5){if(_0x4710c5){return _0x4710c5[_0x009a('0x35')]()[_0x009a('0x34')](function(){var _0x1037ef=_0x4710c5['get']({'plain':!![]});var _0x51163b=_0x009a('0x36');return db[_0x009a('0x37')]['destroy']({'where':{'type':_0x51163b,'resourceId':_0x1037ef['id']}})[_0x009a('0x34')](function(){return _0x4710c5;});})[_0x009a('0x34')](function(){_0x3cc551[_0x009a('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x422b1a,_0x2a0185){return function(_0x33d7b0){if(!_0x33d7b0){_0x422b1a[_0x009a('0x38')](0x194);}return _0x33d7b0;};}function handleError(_0x34e030,_0x134e74){_0x134e74=_0x134e74||0x1f4;return function(_0x20f860){logger['error'](_0x20f860['stack']);if(_0x20f860[_0x009a('0x39')]){delete _0x20f860[_0x009a('0x39')];}_0x34e030[_0x009a('0x29')](_0x134e74)[_0x009a('0x3a')](_0x20f860);};}exports['index']=function(_0x165e68,_0x4baa01){var _0x34bea6={},_0x51aae6={},_0x18bd67={'count':0x0,'rows':[]};var _0x573a4d=_['map'](db[_0x009a('0x3b')][_0x009a('0x3c')],function(_0x5d05a1){return{'name':_0x5d05a1[_0x009a('0x3d')],'type':_0x5d05a1[_0x009a('0x3e')]['key']};});_0x51aae6[_0x009a('0x3f')]=_[_0x009a('0x40')](_0x573a4d,_0x009a('0x39'));_0x51aae6['query']=_[_0x009a('0x41')](_0x165e68[_0x009a('0x42')]);_0x51aae6[_0x009a('0x43')]=_['intersection'](_0x51aae6[_0x009a('0x3f')],_0x51aae6[_0x009a('0x42')]);_0x34bea6[_0x009a('0x44')]=_[_0x009a('0x45')](_0x51aae6['model'],qs['fields'](_0x165e68[_0x009a('0x42')][_0x009a('0x46')]));_0x34bea6[_0x009a('0x44')]=_0x34bea6[_0x009a('0x44')][_0x009a('0x47')]?_0x34bea6[_0x009a('0x44')]:_0x51aae6[_0x009a('0x3f')];if(!_0x165e68[_0x009a('0x42')]['hasOwnProperty']('nolimit')){_0x34bea6['limit']=qs[_0x009a('0x2f')](_0x165e68[_0x009a('0x42')]['limit']);_0x34bea6[_0x009a('0x2c')]=qs[_0x009a('0x2c')](_0x165e68[_0x009a('0x42')][_0x009a('0x2c')]);}_0x34bea6['order']=qs[_0x009a('0x48')](_0x165e68[_0x009a('0x42')][_0x009a('0x48')]);_0x34bea6[_0x009a('0x49')]=qs[_0x009a('0x43')](_[_0x009a('0x4a')](_0x165e68[_0x009a('0x42')],_0x51aae6[_0x009a('0x43')]),_0x573a4d);if(_0x165e68[_0x009a('0x42')][_0x009a('0x4b')]){_0x34bea6[_0x009a('0x49')]=_[_0x009a('0x4c')](_0x34bea6[_0x009a('0x49')],{'$or':_[_0x009a('0x40')](_0x573a4d,function(_0x1d6386){if(_0x1d6386[_0x009a('0x3e')]!==_0x009a('0x4d')){var _0x223bbc={};_0x223bbc[_0x1d6386[_0x009a('0x39')]]={'$like':'%'+_0x165e68[_0x009a('0x42')][_0x009a('0x4b')]+'%'};return _0x223bbc;}})});}_0x34bea6=_[_0x009a('0x4c')]({},_0x34bea6,_0x165e68[_0x009a('0x4e')]);var _0x260b7d={'where':_0x34bea6[_0x009a('0x49')]};return db['VoiceContext'][_0x009a('0x2e')](_0x260b7d)[_0x009a('0x34')](function(_0x1c9044){_0x18bd67['count']=_0x1c9044;if(_0x165e68[_0x009a('0x42')][_0x009a('0x4f')]){_0x34bea6[_0x009a('0x50')]=[{'all':!![]}];}return db['VoiceContext'][_0x009a('0x51')](_0x34bea6);})[_0x009a('0x34')](function(_0x44a953){_0x18bd67['rows']=_0x44a953;return _0x18bd67;})[_0x009a('0x34')](respondWithFilteredResult(_0x4baa01,_0x34bea6))[_0x009a('0x52')](handleError(_0x4baa01,null));};exports['show']=function(_0x544496,_0x18acc4){var _0x5189b2={'raw':![],'where':{'id':_0x544496[_0x009a('0x53')]['id']}},_0x43bfec={};_0x43bfec[_0x009a('0x3f')]=_[_0x009a('0x41')](db[_0x009a('0x3b')][_0x009a('0x3c')]);_0x43bfec[_0x009a('0x42')]=_[_0x009a('0x41')](_0x544496[_0x009a('0x42')]);_0x43bfec[_0x009a('0x43')]=_[_0x009a('0x45')](_0x43bfec[_0x009a('0x3f')],_0x43bfec[_0x009a('0x42')]);_0x5189b2[_0x009a('0x44')]=_[_0x009a('0x45')](_0x43bfec['model'],qs[_0x009a('0x46')](_0x544496[_0x009a('0x42')]['fields']));_0x5189b2['attributes']=_0x5189b2[_0x009a('0x44')][_0x009a('0x47')]?_0x5189b2['attributes']:_0x43bfec[_0x009a('0x3f')];if(_0x544496[_0x009a('0x42')]['includeAll']){_0x5189b2['include']=[{'all':!![]}];}_0x5189b2=_[_0x009a('0x4c')]({},_0x5189b2,_0x544496[_0x009a('0x4e')]);return db[_0x009a('0x3b')][_0x009a('0x54')](_0x5189b2)['then'](handleEntityNotFound(_0x18acc4,null))[_0x009a('0x34')](respondWithResult(_0x18acc4,null))[_0x009a('0x52')](handleError(_0x18acc4,null));};exports[_0x009a('0x55')]=function(_0x5caabf,_0x1c9b8f,_0x4f2766){var _0x7e5a66;return db[_0x009a('0x3b')][_0x009a('0x55')](_0x5caabf[_0x009a('0x56')],{'raw':!![]})['then'](function(_0x342643){_0x7e5a66=_0x342643;return db[_0x009a('0x3b')][_0x009a('0x51')]({'raw':!![]});})[_0x009a('0x34')](function(_0x374dcd){var _0x4fbe18=fs[_0x009a('0x57')](path[_0x009a('0x58')](config[_0x009a('0x59')],_0x009a('0x5a')),_0x009a('0x5b'));var _0x5c08cf=ejs['render'](_0x4fbe18,{'contexts':_0x374dcd||[]});fs[_0x009a('0x5c')](_0x009a('0x5d'),_0x5c08cf);})[_0x009a('0x34')](function(){return respondWithRpcPromise('Reload',_0x009a('0x55'),{'module':_0x009a('0x5e')});})['then'](function(){var _0x2409aa=_0x5caabf['user'][_0x009a('0x5f')]({'plain':!![]});if(!_0x2409aa)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2409aa['role']==='user'){var _0x56fbdb=_0x7e5a66[_0x009a('0x5f')]({'plain':!![]});return db[_0x009a('0x60')][_0x009a('0x54')]({'where':{'name':_0x009a('0x36'),'userProfileId':_0x2409aa[_0x009a('0x61')]},'raw':!![]})[_0x009a('0x34')](function(_0x329ba8){if(_0x329ba8&&_0x329ba8[_0x009a('0x62')]===0x0){return db['UserProfileResource'][_0x009a('0x55')]({'name':_0x56fbdb['name'],'resourceId':_0x56fbdb['id'],'type':_0x329ba8[_0x009a('0x39')],'sectionId':_0x329ba8['id']},{})[_0x009a('0x34')](function(){return _0x7e5a66;});}else{return _0x7e5a66;}})[_0x009a('0x52')](function(_0x36bf83){logger[_0x009a('0x25')](_0x009a('0x63'),_0x36bf83);throw _0x36bf83;});}return _0x7e5a66;})[_0x009a('0x34')](respondWithResult(_0x1c9b8f,0xc9))[_0x009a('0x52')](handleError(_0x1c9b8f,null));};exports[_0x009a('0x33')]=function(_0x18f49f,_0x1867c3,_0x4dbdd2){var _0x3634ce;return db[_0x009a('0x3b')][_0x009a('0x54')]({'where':{'id':_0x18f49f[_0x009a('0x53')]['id']}})[_0x009a('0x34')](handleEntityNotFound(_0x1867c3,null))['then'](saveUpdates(_0x18f49f['body'],null))[_0x009a('0x34')](function(_0x301ae5){if(_0x301ae5){_0x3634ce=_0x301ae5;return db['VoiceContext']['findAll']({'raw':!![]});}})[_0x009a('0x34')](function(_0x1b910d){var _0xefc5d1=fs[_0x009a('0x57')](path['join'](config['root'],_0x009a('0x5a')),_0x009a('0x5b'));var _0x18ee38=ejs[_0x009a('0x64')](_0xefc5d1,{'contexts':_0x1b910d||[]});fs[_0x009a('0x5c')](_0x009a('0x5d'),_0x18ee38);})[_0x009a('0x34')](function(){return respondWithRpcPromise('Reload',_0x009a('0x33'),{'module':_0x009a('0x5e')});})[_0x009a('0x34')](function(){return _0x3634ce;})[_0x009a('0x34')](respondWithResult(_0x1867c3,null))[_0x009a('0x52')](handleError(_0x1867c3,null));};exports[_0x009a('0x35')]=function(_0x511d61,_0x35470e,_0x142dcf){var _0x26d7c0;return db[_0x009a('0x3b')]['find']({'where':{'id':_0x511d61[_0x009a('0x53')]['id']}})[_0x009a('0x34')](handleEntityNotFound(_0x35470e,null))[_0x009a('0x34')](removeEntity(_0x35470e,null))[_0x009a('0x34')](function(){return db[_0x009a('0x3b')][_0x009a('0x51')]({'raw':!![]});})[_0x009a('0x34')](function(_0x1b68b5){var _0x2fd4af=fs[_0x009a('0x57')](path[_0x009a('0x58')](config[_0x009a('0x59')],_0x009a('0x5a')),_0x009a('0x5b'));var _0x5f27cd=ejs['render'](_0x2fd4af,{'contexts':_0x1b68b5});fs[_0x009a('0x5c')](_0x009a('0x5d'),_0x5f27cd);return respondWithRpcPromise('Reload',_0x009a('0x35'),{'module':_0x009a('0x5e')});})[_0x009a('0x52')](handleError(_0x35470e,null));};