Built motion from commit 616d3211.|2.6.4
[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 _0x3282=['filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','params','find','create','body','readFileSync','join','root','server/files/templates/context.ejs','utf8','render','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','writeFileSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','client','http','request','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','end','status','undefined','limit','count','offset','Content-Range','json','apply','save','update','then','get','Contexts','destroy','name','send','index','map','VoiceContext','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where'];(function(_0x3f17bd,_0x481e46){var _0x230f18=function(_0x183a23){while(--_0x183a23){_0x3f17bd['push'](_0x3f17bd['shift']());}};_0x230f18(++_0x481e46);}(_0x3282,0x158));var _0x2328=function(_0x53785b,_0x14b386){_0x53785b=_0x53785b-0x0;var _0x2ae6da=_0x3282[_0x53785b];return _0x2ae6da;};'use strict';var emlformat=require(_0x2328('0x0'));var rimraf=require(_0x2328('0x1'));var zipdir=require(_0x2328('0x2'));var jsonpatch=require(_0x2328('0x3'));var rp=require(_0x2328('0x4'));var moment=require(_0x2328('0x5'));var BPromise=require(_0x2328('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x2328('0x7'));var sox=require('sox');var csv=require(_0x2328('0x8'));var ejs=require(_0x2328('0x9'));var fs=require('fs');var fs_extra=require(_0x2328('0xa'));var _=require(_0x2328('0xb'));var squel=require(_0x2328('0xc'));var crypto=require(_0x2328('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x2328('0xe'));var toCsv=require(_0x2328('0x8'));var querystring=require(_0x2328('0xf'));var Papa=require(_0x2328('0x10'));var Redis=require(_0x2328('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x2328('0x12'));var as=require(_0x2328('0x13'));var hardwareService=require(_0x2328('0x14'));var logger=require(_0x2328('0x15'))(_0x2328('0x16'));var utils=require(_0x2328('0x17'));var config=require(_0x2328('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x2328('0x19'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x2328('0x1a')][_0x2328('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x129ace,_0x412dec,_0x34beb3,_0xc277df){return new BPromise(function(_0x5bca8f,_0x3a5c44){var _0x1b6b04=_0xc277df||client;return _0x1b6b04[_0x2328('0x1c')](_0x129ace,_0x34beb3)['then'](function(_0x4e71af){logger[_0x2328('0x1d')](_0x2328('0x1e'),_0x412dec,_0x2328('0x1f'));logger[_0x2328('0x20')](_0x2328('0x21'),_0x412dec,_0x2328('0x1f'),JSON[_0x2328('0x22')](_0x4e71af));if(_0x4e71af[_0x2328('0x23')]){if(_0x4e71af[_0x2328('0x23')][_0x2328('0x24')]===0x1f4){logger['error'](_0x2328('0x1e'),_0x412dec,_0x4e71af['error']['message']);return _0x3a5c44(_0x4e71af[_0x2328('0x23')][_0x2328('0x25')]);}logger[_0x2328('0x23')](_0x2328('0x1e'),_0x412dec,_0x4e71af['error'][_0x2328('0x25')]);return _0x5bca8f(_0x4e71af[_0x2328('0x23')][_0x2328('0x25')]);}else{logger[_0x2328('0x1d')](_0x2328('0x1e'),_0x412dec,'request\x20sent');_0x5bca8f(_0x4e71af[_0x2328('0x26')]['message']);}})[_0x2328('0x27')](function(_0x3e015d){logger[_0x2328('0x23')](_0x2328('0x1e'),_0x412dec,_0x3e015d);_0x3a5c44(_0x3e015d);});});}function respondWithStatusCode(_0x34ef38,_0x2183b3){_0x2183b3=_0x2183b3||0xcc;return function(_0x43b486){if(_0x43b486){return _0x34ef38[_0x2328('0x28')](_0x2183b3);}return _0x34ef38['status'](_0x2183b3)[_0x2328('0x29')]();};}function respondWithResult(_0x3ae8d0,_0x1f9292){_0x1f9292=_0x1f9292||0xc8;return function(_0xf6c79f){if(_0xf6c79f){return _0x3ae8d0[_0x2328('0x2a')](_0x1f9292)['json'](_0xf6c79f);}};}function respondWithFilteredResult(_0x5462e7,_0x413a91){return function(_0x11db50){if(_0x11db50){var _0x3d80cf=typeof _0x413a91['offset']===_0x2328('0x2b')&&typeof _0x413a91[_0x2328('0x2c')]===_0x2328('0x2b');var _0x29be5f=_0x11db50[_0x2328('0x2d')];var _0x1a91bc=_0x3d80cf?0x0:_0x413a91[_0x2328('0x2e')];var _0x1a4d0a=_0x3d80cf?_0x11db50[_0x2328('0x2d')]:_0x413a91['offset']+_0x413a91[_0x2328('0x2c')];var _0x425b07;if(_0x1a4d0a>=_0x29be5f){_0x1a4d0a=_0x29be5f;_0x425b07=0xc8;}else{_0x425b07=0xce;}_0x5462e7['status'](_0x425b07);return _0x5462e7['set'](_0x2328('0x2f'),_0x1a91bc+'-'+_0x1a4d0a+'/'+_0x29be5f)[_0x2328('0x30')](_0x11db50);}return null;};}function patchUpdates(_0x1eaf2f){return function(_0x36b974){try{jsonpatch[_0x2328('0x31')](_0x36b974,_0x1eaf2f,!![]);}catch(_0x1aad17){return BPromise['reject'](_0x1aad17);}return _0x36b974[_0x2328('0x32')]();};}function saveUpdates(_0x1c4c3a,_0x1adab4){return function(_0xf42cf7){if(_0xf42cf7){return _0xf42cf7[_0x2328('0x33')](_0x1c4c3a)[_0x2328('0x34')](function(_0x10e02b){return _0x10e02b;});}return null;};}function removeEntity(_0xe064d,_0x3e4f66){return function(_0x29653a){if(_0x29653a){return _0x29653a['destroy']()[_0x2328('0x34')](function(){var _0x3c7f18=_0x29653a[_0x2328('0x35')]({'plain':!![]});var _0x32f8ad=_0x2328('0x36');return db['UserProfileResource'][_0x2328('0x37')]({'where':{'type':_0x32f8ad,'resourceId':_0x3c7f18['id']}})[_0x2328('0x34')](function(){return _0x29653a;});})['then'](function(){_0xe064d['status'](0xcc)[_0x2328('0x29')]();});}};}function handleEntityNotFound(_0x4861d8,_0x1628d6){return function(_0xbead03){if(!_0xbead03){_0x4861d8[_0x2328('0x28')](0x194);}return _0xbead03;};}function handleError(_0x27a83c,_0x463053){_0x463053=_0x463053||0x1f4;return function(_0x37c7b5){logger['error'](_0x37c7b5['stack']);if(_0x37c7b5[_0x2328('0x38')]){delete _0x37c7b5['name'];}_0x27a83c['status'](_0x463053)[_0x2328('0x39')](_0x37c7b5);};}exports[_0x2328('0x3a')]=function(_0x3df33d,_0x5071a1){var _0x4daf63={},_0x2bc7d3={},_0x46f3fb={'count':0x0,'rows':[]};var _0x57532d=_[_0x2328('0x3b')](db[_0x2328('0x3c')][_0x2328('0x3d')],function(_0x53f224){return{'name':_0x53f224['fieldName'],'type':_0x53f224[_0x2328('0x3e')][_0x2328('0x3f')]};});_0x2bc7d3[_0x2328('0x40')]=_[_0x2328('0x3b')](_0x57532d,_0x2328('0x38'));_0x2bc7d3['query']=_[_0x2328('0x41')](_0x3df33d[_0x2328('0x42')]);_0x2bc7d3[_0x2328('0x43')]=_[_0x2328('0x44')](_0x2bc7d3[_0x2328('0x40')],_0x2bc7d3['query']);_0x4daf63[_0x2328('0x45')]=_[_0x2328('0x44')](_0x2bc7d3[_0x2328('0x40')],qs[_0x2328('0x46')](_0x3df33d['query']['fields']));_0x4daf63['attributes']=_0x4daf63['attributes']['length']?_0x4daf63[_0x2328('0x45')]:_0x2bc7d3[_0x2328('0x40')];if(!_0x3df33d[_0x2328('0x42')][_0x2328('0x47')](_0x2328('0x48'))){_0x4daf63['limit']=qs['limit'](_0x3df33d[_0x2328('0x42')]['limit']);_0x4daf63[_0x2328('0x2e')]=qs[_0x2328('0x2e')](_0x3df33d[_0x2328('0x42')][_0x2328('0x2e')]);}_0x4daf63[_0x2328('0x49')]=qs[_0x2328('0x4a')](_0x3df33d['query'][_0x2328('0x4a')]);_0x4daf63[_0x2328('0x4b')]=qs[_0x2328('0x43')](_['pick'](_0x3df33d[_0x2328('0x42')],_0x2bc7d3[_0x2328('0x43')]),_0x57532d);if(_0x3df33d[_0x2328('0x42')][_0x2328('0x4c')]){_0x4daf63[_0x2328('0x4b')]=_[_0x2328('0x4d')](_0x4daf63[_0x2328('0x4b')],{'$or':_[_0x2328('0x3b')](_0x57532d,function(_0x590220){if(_0x590220[_0x2328('0x3e')]!==_0x2328('0x4e')){var _0x3d5706={};_0x3d5706[_0x590220[_0x2328('0x38')]]={'$like':'%'+_0x3df33d[_0x2328('0x42')][_0x2328('0x4c')]+'%'};return _0x3d5706;}})});}_0x4daf63=_['merge']({},_0x4daf63,_0x3df33d[_0x2328('0x4f')]);var _0x56921b={'where':_0x4daf63[_0x2328('0x4b')]};return db[_0x2328('0x3c')][_0x2328('0x2d')](_0x56921b)['then'](function(_0x496126){_0x46f3fb['count']=_0x496126;if(_0x3df33d[_0x2328('0x42')][_0x2328('0x50')]){_0x4daf63[_0x2328('0x51')]=[{'all':!![]}];}return db[_0x2328('0x3c')][_0x2328('0x52')](_0x4daf63);})[_0x2328('0x34')](function(_0x185350){_0x46f3fb[_0x2328('0x53')]=_0x185350;return _0x46f3fb;})['then'](respondWithFilteredResult(_0x5071a1,_0x4daf63))[_0x2328('0x27')](handleError(_0x5071a1,null));};exports['show']=function(_0x2edc5b,_0x2ebb5a){var _0x4afd4b={'raw':![],'where':{'id':_0x2edc5b[_0x2328('0x54')]['id']}},_0x4a2ab3={};_0x4a2ab3[_0x2328('0x40')]=_[_0x2328('0x41')](db[_0x2328('0x3c')][_0x2328('0x3d')]);_0x4a2ab3[_0x2328('0x42')]=_['keys'](_0x2edc5b[_0x2328('0x42')]);_0x4a2ab3[_0x2328('0x43')]=_[_0x2328('0x44')](_0x4a2ab3['model'],_0x4a2ab3[_0x2328('0x42')]);_0x4afd4b[_0x2328('0x45')]=_[_0x2328('0x44')](_0x4a2ab3[_0x2328('0x40')],qs[_0x2328('0x46')](_0x2edc5b[_0x2328('0x42')][_0x2328('0x46')]));_0x4afd4b[_0x2328('0x45')]=_0x4afd4b[_0x2328('0x45')]['length']?_0x4afd4b['attributes']:_0x4a2ab3[_0x2328('0x40')];if(_0x2edc5b[_0x2328('0x42')][_0x2328('0x50')]){_0x4afd4b[_0x2328('0x51')]=[{'all':!![]}];}_0x4afd4b=_[_0x2328('0x4d')]({},_0x4afd4b,_0x2edc5b['options']);return db[_0x2328('0x3c')][_0x2328('0x55')](_0x4afd4b)['then'](handleEntityNotFound(_0x2ebb5a,null))[_0x2328('0x34')](respondWithResult(_0x2ebb5a,null))[_0x2328('0x27')](handleError(_0x2ebb5a,null));};exports[_0x2328('0x56')]=function(_0x26987c,_0x33ea3f,_0x1c7f75){var _0x376300;return db['VoiceContext'][_0x2328('0x56')](_0x26987c[_0x2328('0x57')],{'raw':!![]})[_0x2328('0x34')](function(_0xe1ae31){_0x376300=_0xe1ae31;return db[_0x2328('0x3c')]['findAll']({'raw':!![]});})['then'](function(_0x15957c){var _0x476784=fs[_0x2328('0x58')](path[_0x2328('0x59')](config[_0x2328('0x5a')],_0x2328('0x5b')),_0x2328('0x5c'));var _0x2647c2=ejs[_0x2328('0x5d')](_0x476784,{'contexts':_0x15957c||[]});fs['writeFileSync'](_0x2328('0x5e'),_0x2647c2);})[_0x2328('0x34')](function(){return respondWithRpcPromise(_0x2328('0x5f'),_0x2328('0x56'),{'module':_0x2328('0x60')});})[_0x2328('0x34')](function(){var _0x122ae1=_0x26987c[_0x2328('0x61')][_0x2328('0x35')]({'plain':!![]});if(!_0x122ae1)throw new Error(_0x2328('0x62'));if(_0x122ae1[_0x2328('0x63')]===_0x2328('0x61')){var _0x4813f3=_0x376300[_0x2328('0x35')]({'plain':!![]});return db['UserProfileSection'][_0x2328('0x55')]({'where':{'name':_0x2328('0x36'),'userProfileId':_0x122ae1[_0x2328('0x64')]},'raw':!![]})[_0x2328('0x34')](function(_0x54198e){if(_0x54198e&&_0x54198e[_0x2328('0x65')]===0x0){return db[_0x2328('0x66')]['create']({'name':_0x4813f3[_0x2328('0x38')],'resourceId':_0x4813f3['id'],'type':_0x54198e[_0x2328('0x38')],'sectionId':_0x54198e['id']},{})['then'](function(){return _0x376300;});}else{return _0x376300;}})[_0x2328('0x27')](function(_0x42c226){logger['error'](_0x2328('0x67'),_0x42c226);throw _0x42c226;});}return _0x376300;})[_0x2328('0x34')](respondWithResult(_0x33ea3f,0xc9))[_0x2328('0x27')](handleError(_0x33ea3f,null));};exports[_0x2328('0x33')]=function(_0x3bd7e3,_0xc2f940,_0x2ec922){var _0x3eb17f;return db['VoiceContext'][_0x2328('0x55')]({'where':{'id':_0x3bd7e3[_0x2328('0x54')]['id']}})['then'](handleEntityNotFound(_0xc2f940,null))[_0x2328('0x34')](saveUpdates(_0x3bd7e3[_0x2328('0x57')],null))[_0x2328('0x34')](function(_0x4e7e45){if(_0x4e7e45){_0x3eb17f=_0x4e7e45;return db[_0x2328('0x3c')][_0x2328('0x52')]({'raw':!![]});}})[_0x2328('0x34')](function(_0x51ab3a){var _0x209450=fs['readFileSync'](path[_0x2328('0x59')](config[_0x2328('0x5a')],_0x2328('0x5b')),_0x2328('0x5c'));var _0x21554e=ejs[_0x2328('0x5d')](_0x209450,{'contexts':_0x51ab3a||[]});fs['writeFileSync'](_0x2328('0x5e'),_0x21554e);})['then'](function(){return respondWithRpcPromise(_0x2328('0x5f'),_0x2328('0x33'),{'module':_0x2328('0x60')});})[_0x2328('0x34')](function(){return _0x3eb17f;})[_0x2328('0x34')](respondWithResult(_0xc2f940,null))[_0x2328('0x27')](handleError(_0xc2f940,null));};exports[_0x2328('0x37')]=function(_0x2743d3,_0x2d532e,_0x4461b5){var _0x351f22;return db[_0x2328('0x3c')][_0x2328('0x55')]({'where':{'id':_0x2743d3[_0x2328('0x54')]['id']}})[_0x2328('0x34')](handleEntityNotFound(_0x2d532e,null))['then'](removeEntity(_0x2d532e,null))[_0x2328('0x34')](function(){return db[_0x2328('0x3c')][_0x2328('0x52')]({'raw':!![]});})[_0x2328('0x34')](function(_0x30385){var _0x337b85=fs[_0x2328('0x58')](path[_0x2328('0x59')](config[_0x2328('0x5a')],_0x2328('0x5b')),'utf8');var _0x58ce60=ejs[_0x2328('0x5d')](_0x337b85,{'contexts':_0x30385});fs[_0x2328('0x68')](_0x2328('0x5e'),_0x58ce60);return respondWithRpcPromise(_0x2328('0x5f'),'destroy',{'module':'chan_sip.so'});})[_0x2328('0x27')](handleError(_0x2d532e,null));};