Built motion from commit d5e4af8c.|2.6.23
[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 _0xb6cd=['stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','VoiceContext','findAll','catch','params','options','find','readFileSync','root','utf8','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','join','server/files/templates/context.ejs','render','chan_sip.so','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','fs-extra','lodash','crypto','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','then','VoiceContext,\x20%s,\x20%s','request\x20sent','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','destroy','Contexts','UserProfileResource'];(function(_0x4de703,_0x4525a3){var _0x3ca55a=function(_0x5b5b7a){while(--_0x5b5b7a){_0x4de703['push'](_0x4de703['shift']());}};_0x3ca55a(++_0x4525a3);}(_0xb6cd,0x1ca));var _0xdb6c=function(_0x1c415e,_0x56b220){_0x1c415e=_0x1c415e-0x0;var _0x5e60ad=_0xb6cd[_0x1c415e];return _0x5e60ad;};'use strict';var emlformat=require(_0xdb6c('0x0'));var rimraf=require(_0xdb6c('0x1'));var zipdir=require(_0xdb6c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xdb6c('0x3'));var moment=require(_0xdb6c('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xdb6c('0x5'));var util=require(_0xdb6c('0x6'));var path=require(_0xdb6c('0x7'));var sox=require(_0xdb6c('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdb6c('0x9'));var _=require(_0xdb6c('0xa'));var squel=require('squel');var crypto=require(_0xdb6c('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xdb6c('0xc'));var querystring=require(_0xdb6c('0xd'));var Papa=require(_0xdb6c('0xe'));var Redis=require(_0xdb6c('0xf'));var authService=require(_0xdb6c('0x10'));var qs=require(_0xdb6c('0x11'));var as=require(_0xdb6c('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdb6c('0x13'))(_0xdb6c('0x14'));var utils=require(_0xdb6c('0x15'));var config=require(_0xdb6c('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xdb6c('0x17'))['db'];var jayson=require(_0xdb6c('0x18'));var client=jayson[_0xdb6c('0x19')][_0xdb6c('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x35e914,_0x4ebb77,_0x4cd64a,_0x1bdbd2){return new BPromise(function(_0xa0798c,_0x367847){var _0x466864=_0x1bdbd2||client;return _0x466864['request'](_0x35e914,_0x4cd64a)[_0xdb6c('0x1b')](function(_0x237f37){logger['info'](_0xdb6c('0x1c'),_0x4ebb77,_0xdb6c('0x1d'));logger['debug'](_0xdb6c('0x1e'),_0x4ebb77,'request\x20sent',JSON[_0xdb6c('0x1f')](_0x237f37));if(_0x237f37[_0xdb6c('0x20')]){if(_0x237f37[_0xdb6c('0x20')][_0xdb6c('0x21')]===0x1f4){logger[_0xdb6c('0x20')](_0xdb6c('0x1c'),_0x4ebb77,_0x237f37['error'][_0xdb6c('0x22')]);return _0x367847(_0x237f37[_0xdb6c('0x20')]['message']);}logger['error']('VoiceContext,\x20%s,\x20%s',_0x4ebb77,_0x237f37[_0xdb6c('0x20')][_0xdb6c('0x22')]);return _0xa0798c(_0x237f37['error'][_0xdb6c('0x22')]);}else{logger[_0xdb6c('0x23')]('VoiceContext,\x20%s,\x20%s',_0x4ebb77,_0xdb6c('0x1d'));_0xa0798c(_0x237f37[_0xdb6c('0x24')][_0xdb6c('0x22')]);}})['catch'](function(_0x3c7ce7){logger[_0xdb6c('0x20')](_0xdb6c('0x1c'),_0x4ebb77,_0x3c7ce7);_0x367847(_0x3c7ce7);});});}function respondWithStatusCode(_0x5c5bd4,_0x19549a){_0x19549a=_0x19549a||0xcc;return function(_0x5e3905){if(_0x5e3905){return _0x5c5bd4[_0xdb6c('0x25')](_0x19549a);}return _0x5c5bd4[_0xdb6c('0x26')](_0x19549a)['end']();};}function respondWithResult(_0x57a770,_0xc43e9e){_0xc43e9e=_0xc43e9e||0xc8;return function(_0xd6c48a){if(_0xd6c48a){return _0x57a770['status'](_0xc43e9e)[_0xdb6c('0x27')](_0xd6c48a);}};}function respondWithFilteredResult(_0x1afe63,_0x4f0ec9){return function(_0x379d68){if(_0x379d68){var _0x18be2a=typeof _0x4f0ec9[_0xdb6c('0x28')]===_0xdb6c('0x29')&&typeof _0x4f0ec9[_0xdb6c('0x2a')]===_0xdb6c('0x29');var _0x5594d8=_0x379d68[_0xdb6c('0x2b')];var _0x5bcaf6=_0x18be2a?0x0:_0x4f0ec9[_0xdb6c('0x28')];var _0x1d9999=_0x18be2a?_0x379d68[_0xdb6c('0x2b')]:_0x4f0ec9[_0xdb6c('0x28')]+_0x4f0ec9[_0xdb6c('0x2a')];var _0x103c3c;if(_0x1d9999>=_0x5594d8){_0x1d9999=_0x5594d8;_0x103c3c=0xc8;}else{_0x103c3c=0xce;}_0x1afe63['status'](_0x103c3c);return _0x1afe63[_0xdb6c('0x2c')](_0xdb6c('0x2d'),_0x5bcaf6+'-'+_0x1d9999+'/'+_0x5594d8)[_0xdb6c('0x27')](_0x379d68);}return null;};}function patchUpdates(_0x439655){return function(_0x207e47){try{jsonpatch['apply'](_0x207e47,_0x439655,!![]);}catch(_0x4c1287){return BPromise[_0xdb6c('0x2e')](_0x4c1287);}return _0x207e47[_0xdb6c('0x2f')]();};}function saveUpdates(_0x3ba448,_0x3161b7){return function(_0x1e7fd7){if(_0x1e7fd7){return _0x1e7fd7[_0xdb6c('0x30')](_0x3ba448)[_0xdb6c('0x1b')](function(_0x2601d8){return _0x2601d8;});}return null;};}function removeEntity(_0x412444,_0x560256){return function(_0x311eab){if(_0x311eab){return _0x311eab[_0xdb6c('0x31')]()[_0xdb6c('0x1b')](function(){var _0x5cf186=_0x311eab['get']({'plain':!![]});var _0x394306=_0xdb6c('0x32');return db[_0xdb6c('0x33')][_0xdb6c('0x31')]({'where':{'type':_0x394306,'resourceId':_0x5cf186['id']}})[_0xdb6c('0x1b')](function(){return _0x311eab;});})[_0xdb6c('0x1b')](function(){_0x412444['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4ec07b,_0x3b30b1){return function(_0x508dff){if(!_0x508dff){_0x4ec07b[_0xdb6c('0x25')](0x194);}return _0x508dff;};}function handleError(_0x47de12,_0x1f202f){_0x1f202f=_0x1f202f||0x1f4;return function(_0x2dc096){logger['error'](_0x2dc096[_0xdb6c('0x34')]);if(_0x2dc096[_0xdb6c('0x35')]){delete _0x2dc096[_0xdb6c('0x35')];}_0x47de12['status'](_0x1f202f)['send'](_0x2dc096);};}exports[_0xdb6c('0x36')]=function(_0x861eab,_0x2c5557){var _0x4d8bd2={},_0x30e788={},_0x481dff={'count':0x0,'rows':[]};var _0x11f2f5=_[_0xdb6c('0x37')](db['VoiceContext'][_0xdb6c('0x38')],function(_0x1e4df5){return{'name':_0x1e4df5[_0xdb6c('0x39')],'type':_0x1e4df5[_0xdb6c('0x3a')][_0xdb6c('0x3b')]};});_0x30e788[_0xdb6c('0x3c')]=_[_0xdb6c('0x37')](_0x11f2f5,_0xdb6c('0x35'));_0x30e788[_0xdb6c('0x3d')]=_[_0xdb6c('0x3e')](_0x861eab['query']);_0x30e788[_0xdb6c('0x3f')]=_[_0xdb6c('0x40')](_0x30e788['model'],_0x30e788['query']);_0x4d8bd2[_0xdb6c('0x41')]=_[_0xdb6c('0x40')](_0x30e788[_0xdb6c('0x3c')],qs[_0xdb6c('0x42')](_0x861eab[_0xdb6c('0x3d')][_0xdb6c('0x42')]));_0x4d8bd2[_0xdb6c('0x41')]=_0x4d8bd2[_0xdb6c('0x41')]['length']?_0x4d8bd2[_0xdb6c('0x41')]:_0x30e788[_0xdb6c('0x3c')];if(!_0x861eab['query'][_0xdb6c('0x43')](_0xdb6c('0x44'))){_0x4d8bd2['limit']=qs[_0xdb6c('0x2a')](_0x861eab[_0xdb6c('0x3d')]['limit']);_0x4d8bd2[_0xdb6c('0x28')]=qs[_0xdb6c('0x28')](_0x861eab[_0xdb6c('0x3d')][_0xdb6c('0x28')]);}_0x4d8bd2[_0xdb6c('0x45')]=qs[_0xdb6c('0x46')](_0x861eab['query'][_0xdb6c('0x46')]);_0x4d8bd2[_0xdb6c('0x47')]=qs[_0xdb6c('0x3f')](_[_0xdb6c('0x48')](_0x861eab[_0xdb6c('0x3d')],_0x30e788[_0xdb6c('0x3f')]),_0x11f2f5);if(_0x861eab['query'][_0xdb6c('0x49')]){_0x4d8bd2[_0xdb6c('0x47')]=_[_0xdb6c('0x4a')](_0x4d8bd2[_0xdb6c('0x47')],{'$or':_['map'](_0x11f2f5,function(_0x530edf){if(_0x530edf['type']!==_0xdb6c('0x4b')){var _0x1bd99e={};_0x1bd99e[_0x530edf[_0xdb6c('0x35')]]={'$like':'%'+_0x861eab['query'][_0xdb6c('0x49')]+'%'};return _0x1bd99e;}})});}_0x4d8bd2=_[_0xdb6c('0x4a')]({},_0x4d8bd2,_0x861eab['options']);var _0x7faca8={'where':_0x4d8bd2[_0xdb6c('0x47')]};return db['VoiceContext']['count'](_0x7faca8)[_0xdb6c('0x1b')](function(_0x9454ab){_0x481dff['count']=_0x9454ab;if(_0x861eab['query'][_0xdb6c('0x4c')]){_0x4d8bd2[_0xdb6c('0x4d')]=[{'all':!![]}];}return db[_0xdb6c('0x4e')][_0xdb6c('0x4f')](_0x4d8bd2);})['then'](function(_0x3df799){_0x481dff['rows']=_0x3df799;return _0x481dff;})[_0xdb6c('0x1b')](respondWithFilteredResult(_0x2c5557,_0x4d8bd2))[_0xdb6c('0x50')](handleError(_0x2c5557,null));};exports['show']=function(_0x5aef00,_0x23b4d4){var _0x1dda18={'raw':![],'where':{'id':_0x5aef00[_0xdb6c('0x51')]['id']}},_0x571755={};_0x571755[_0xdb6c('0x3c')]=_[_0xdb6c('0x3e')](db[_0xdb6c('0x4e')][_0xdb6c('0x38')]);_0x571755[_0xdb6c('0x3d')]=_['keys'](_0x5aef00[_0xdb6c('0x3d')]);_0x571755['filters']=_[_0xdb6c('0x40')](_0x571755['model'],_0x571755[_0xdb6c('0x3d')]);_0x1dda18[_0xdb6c('0x41')]=_[_0xdb6c('0x40')](_0x571755[_0xdb6c('0x3c')],qs['fields'](_0x5aef00[_0xdb6c('0x3d')][_0xdb6c('0x42')]));_0x1dda18['attributes']=_0x1dda18[_0xdb6c('0x41')]['length']?_0x1dda18[_0xdb6c('0x41')]:_0x571755[_0xdb6c('0x3c')];if(_0x5aef00[_0xdb6c('0x3d')][_0xdb6c('0x4c')]){_0x1dda18[_0xdb6c('0x4d')]=[{'all':!![]}];}_0x1dda18=_[_0xdb6c('0x4a')]({},_0x1dda18,_0x5aef00[_0xdb6c('0x52')]);return db[_0xdb6c('0x4e')][_0xdb6c('0x53')](_0x1dda18)[_0xdb6c('0x1b')](handleEntityNotFound(_0x23b4d4,null))[_0xdb6c('0x1b')](respondWithResult(_0x23b4d4,null))[_0xdb6c('0x50')](handleError(_0x23b4d4,null));};exports['create']=function(_0x22ea8b,_0x17c46d,_0x30093d){var _0x334e61;return db[_0xdb6c('0x4e')]['create'](_0x22ea8b['body'],{'raw':!![]})[_0xdb6c('0x1b')](function(_0x21297f){_0x334e61=_0x21297f;return db[_0xdb6c('0x4e')]['findAll']({'raw':!![]});})[_0xdb6c('0x1b')](function(_0x3885b5){var _0x27f715=fs[_0xdb6c('0x54')](path['join'](config[_0xdb6c('0x55')],'server/files/templates/context.ejs'),_0xdb6c('0x56'));var _0x5b18d5=ejs['render'](_0x27f715,{'contexts':_0x3885b5||[]});fs[_0xdb6c('0x57')](_0xdb6c('0x58'),_0x5b18d5);})[_0xdb6c('0x1b')](function(){return respondWithRpcPromise(_0xdb6c('0x59'),'create',{'module':'chan_sip.so'});})[_0xdb6c('0x1b')](function(){var _0x3fee23=_0x22ea8b[_0xdb6c('0x5a')][_0xdb6c('0x5b')]({'plain':!![]});if(!_0x3fee23)throw new Error(_0xdb6c('0x5c'));if(_0x3fee23[_0xdb6c('0x5d')]==='user'){var _0x382c59=_0x334e61['get']({'plain':!![]});return db[_0xdb6c('0x5e')]['find']({'where':{'name':_0xdb6c('0x32'),'userProfileId':_0x3fee23[_0xdb6c('0x5f')]},'raw':!![]})[_0xdb6c('0x1b')](function(_0x204d73){if(_0x204d73&&_0x204d73['autoAssociation']===0x0){return db[_0xdb6c('0x33')]['create']({'name':_0x382c59[_0xdb6c('0x35')],'resourceId':_0x382c59['id'],'type':_0x204d73[_0xdb6c('0x35')],'sectionId':_0x204d73['id']},{})['then'](function(){return _0x334e61;});}else{return _0x334e61;}})[_0xdb6c('0x50')](function(_0x1b25ab){logger[_0xdb6c('0x20')](_0xdb6c('0x60'),_0x1b25ab);throw _0x1b25ab;});}return _0x334e61;})['then'](respondWithResult(_0x17c46d,0xc9))[_0xdb6c('0x50')](handleError(_0x17c46d,null));};exports[_0xdb6c('0x30')]=function(_0x20b023,_0x4e08c9,_0x144bd9){var _0x75b696;return db[_0xdb6c('0x4e')]['find']({'where':{'id':_0x20b023[_0xdb6c('0x51')]['id']}})['then'](handleEntityNotFound(_0x4e08c9,null))[_0xdb6c('0x1b')](saveUpdates(_0x20b023[_0xdb6c('0x61')],null))[_0xdb6c('0x1b')](function(_0x3bd73d){if(_0x3bd73d){_0x75b696=_0x3bd73d;return db[_0xdb6c('0x4e')][_0xdb6c('0x4f')]({'raw':!![]});}})[_0xdb6c('0x1b')](function(_0x1a0e27){var _0x27fce6=fs['readFileSync'](path[_0xdb6c('0x62')](config[_0xdb6c('0x55')],_0xdb6c('0x63')),'utf8');var _0x2b5b77=ejs[_0xdb6c('0x64')](_0x27fce6,{'contexts':_0x1a0e27||[]});fs[_0xdb6c('0x57')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x2b5b77);})[_0xdb6c('0x1b')](function(){return respondWithRpcPromise(_0xdb6c('0x59'),'update',{'module':_0xdb6c('0x65')});})[_0xdb6c('0x1b')](function(){return _0x75b696;})[_0xdb6c('0x1b')](respondWithResult(_0x4e08c9,null))['catch'](handleError(_0x4e08c9,null));};exports[_0xdb6c('0x31')]=function(_0x1d0f3a,_0x517e09,_0x5ad6d4){var _0x362263;return db[_0xdb6c('0x4e')][_0xdb6c('0x53')]({'where':{'id':_0x1d0f3a['params']['id']}})[_0xdb6c('0x1b')](handleEntityNotFound(_0x517e09,null))['then'](removeEntity(_0x517e09,null))['then'](function(){return db['VoiceContext']['findAll']({'raw':!![]});})[_0xdb6c('0x1b')](function(_0x2c18b7){var _0x2b9995=fs[_0xdb6c('0x54')](path['join'](config['root'],'server/files/templates/context.ejs'),_0xdb6c('0x56'));var _0x32b0cc=ejs['render'](_0x2b9995,{'contexts':_0x2c18b7});fs[_0xdb6c('0x57')](_0xdb6c('0x58'),_0x32b0cc);return respondWithRpcPromise('Reload','destroy',{'module':_0xdb6c('0x65')});})[_0xdb6c('0x50')](handleError(_0x517e09,null));};