Built motion from commit 5b761a7b.|2.5.36
[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 _0xb30c=['update','then','destroy','UserProfileResource','sendStatus','stack','name','send','index','rawAttributes','fieldName','key','model','map','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','type','VIRTUAL','filter','merge','options','includeAll','VoiceContext','findAll','rows','show','params','keys','include','create','body','readFileSync','join','root','server/files/templates/context.ejs','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Contexts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','utf8','Reload','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','http','request','request\x20sent','debug','stringify','error','VoiceContext,\x20%s,\x20%s','message','info','catch','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save'];(function(_0x3dd817,_0x4e4229){var _0x45afc4=function(_0x44fbbd){while(--_0x44fbbd){_0x3dd817['push'](_0x3dd817['shift']());}};_0x45afc4(++_0x4e4229);}(_0xb30c,0x115));var _0xcb30=function(_0x3a131c,_0x1b07e1){_0x3a131c=_0x3a131c-0x0;var _0x22b7a5=_0xb30c[_0x3a131c];return _0x22b7a5;};'use strict';var emlformat=require(_0xcb30('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xcb30('0x1'));var jsonpatch=require(_0xcb30('0x2'));var rp=require('request-promise');var moment=require(_0xcb30('0x3'));var BPromise=require(_0xcb30('0x4'));var Mustache=require(_0xcb30('0x5'));var util=require(_0xcb30('0x6'));var path=require(_0xcb30('0x7'));var sox=require('sox');var csv=require(_0xcb30('0x8'));var ejs=require(_0xcb30('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xcb30('0xa'));var crypto=require(_0xcb30('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xcb30('0xc'));var toCsv=require(_0xcb30('0x8'));var querystring=require(_0xcb30('0xd'));var Papa=require(_0xcb30('0xe'));var Redis=require('ioredis');var authService=require(_0xcb30('0xf'));var qs=require(_0xcb30('0x10'));var as=require(_0xcb30('0x11'));var hardwareService=require(_0xcb30('0x12'));var logger=require(_0xcb30('0x13'))(_0xcb30('0x14'));var utils=require(_0xcb30('0x15'));var config=require(_0xcb30('0x16'));var licenseUtil=require(_0xcb30('0x17'));var db=require(_0xcb30('0x18'))['db'];var jayson=require(_0xcb30('0x19'));var client=jayson['client'][_0xcb30('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0xcec959,_0x2483fe,_0x435759,_0x58875f){return new BPromise(function(_0x484cf4,_0x4f66bf){var _0x2989f1=_0x58875f||client;return _0x2989f1[_0xcb30('0x1b')](_0xcec959,_0x435759)['then'](function(_0x16de6a){logger['info']('VoiceContext,\x20%s,\x20%s',_0x2483fe,_0xcb30('0x1c'));logger[_0xcb30('0x1d')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x2483fe,_0xcb30('0x1c'),JSON[_0xcb30('0x1e')](_0x16de6a));if(_0x16de6a[_0xcb30('0x1f')]){if(_0x16de6a['error']['code']===0x1f4){logger[_0xcb30('0x1f')](_0xcb30('0x20'),_0x2483fe,_0x16de6a[_0xcb30('0x1f')]['message']);return _0x4f66bf(_0x16de6a[_0xcb30('0x1f')][_0xcb30('0x21')]);}logger[_0xcb30('0x1f')](_0xcb30('0x20'),_0x2483fe,_0x16de6a[_0xcb30('0x1f')]['message']);return _0x484cf4(_0x16de6a[_0xcb30('0x1f')][_0xcb30('0x21')]);}else{logger[_0xcb30('0x22')](_0xcb30('0x20'),_0x2483fe,_0xcb30('0x1c'));_0x484cf4(_0x16de6a['result']['message']);}})[_0xcb30('0x23')](function(_0xbe9097){logger['error']('VoiceContext,\x20%s,\x20%s',_0x2483fe,_0xbe9097);_0x4f66bf(_0xbe9097);});});}function respondWithStatusCode(_0x396167,_0x15a8cc){_0x15a8cc=_0x15a8cc||0xcc;return function(_0x3dc6a0){if(_0x3dc6a0){return _0x396167['sendStatus'](_0x15a8cc);}return _0x396167[_0xcb30('0x24')](_0x15a8cc)['end']();};}function respondWithResult(_0x4ecaba,_0x1b5780){_0x1b5780=_0x1b5780||0xc8;return function(_0x6ec7de){if(_0x6ec7de){return _0x4ecaba[_0xcb30('0x24')](_0x1b5780)['json'](_0x6ec7de);}};}function respondWithFilteredResult(_0x46056b,_0x5d5127){return function(_0xe9ab64){if(_0xe9ab64){var _0x251072=typeof _0x5d5127[_0xcb30('0x25')]===_0xcb30('0x26')&&typeof _0x5d5127[_0xcb30('0x27')]===_0xcb30('0x26');var _0x3f1da9=_0xe9ab64['count'];var _0x16a244=_0x251072?0x0:_0x5d5127['offset'];var _0x4c72=_0x251072?_0xe9ab64[_0xcb30('0x28')]:_0x5d5127[_0xcb30('0x25')]+_0x5d5127[_0xcb30('0x27')];var _0x3e4428;if(_0x4c72>=_0x3f1da9){_0x4c72=_0x3f1da9;_0x3e4428=0xc8;}else{_0x3e4428=0xce;}_0x46056b[_0xcb30('0x24')](_0x3e4428);return _0x46056b[_0xcb30('0x29')](_0xcb30('0x2a'),_0x16a244+'-'+_0x4c72+'/'+_0x3f1da9)[_0xcb30('0x2b')](_0xe9ab64);}return null;};}function patchUpdates(_0x1bcd76){return function(_0xc2bf7f){try{jsonpatch[_0xcb30('0x2c')](_0xc2bf7f,_0x1bcd76,!![]);}catch(_0x2b3601){return BPromise[_0xcb30('0x2d')](_0x2b3601);}return _0xc2bf7f[_0xcb30('0x2e')]();};}function saveUpdates(_0x3674d8,_0x55b279){return function(_0x4bf275){if(_0x4bf275){return _0x4bf275[_0xcb30('0x2f')](_0x3674d8)[_0xcb30('0x30')](function(_0x35f3e2){return _0x35f3e2;});}return null;};}function removeEntity(_0x42e8d0,_0x48f4b0){return function(_0x35e114){if(_0x35e114){return _0x35e114[_0xcb30('0x31')]()[_0xcb30('0x30')](function(){var _0x4a59ea=_0x35e114['get']({'plain':!![]});var _0x49497f='Contexts';return db[_0xcb30('0x32')]['destroy']({'where':{'type':_0x49497f,'resourceId':_0x4a59ea['id']}})['then'](function(){return _0x35e114;});})[_0xcb30('0x30')](function(){_0x42e8d0[_0xcb30('0x24')](0xcc)['end']();});}};}function handleEntityNotFound(_0x54f40c,_0x3e7660){return function(_0x4a104b){if(!_0x4a104b){_0x54f40c[_0xcb30('0x33')](0x194);}return _0x4a104b;};}function handleError(_0x26b830,_0x23679b){_0x23679b=_0x23679b||0x1f4;return function(_0xadbb61){logger[_0xcb30('0x1f')](_0xadbb61[_0xcb30('0x34')]);if(_0xadbb61['name']){delete _0xadbb61[_0xcb30('0x35')];}_0x26b830[_0xcb30('0x24')](_0x23679b)[_0xcb30('0x36')](_0xadbb61);};}exports[_0xcb30('0x37')]=function(_0x3a0351,_0x38017a){var _0x490ee2={},_0x202b5b={},_0x20c187={'count':0x0,'rows':[]};var _0x1b2a43=_['map'](db['VoiceContext'][_0xcb30('0x38')],function(_0x4f3fc1){return{'name':_0x4f3fc1[_0xcb30('0x39')],'type':_0x4f3fc1['type'][_0xcb30('0x3a')]};});_0x202b5b[_0xcb30('0x3b')]=_[_0xcb30('0x3c')](_0x1b2a43,_0xcb30('0x35'));_0x202b5b[_0xcb30('0x3d')]=_['keys'](_0x3a0351['query']);_0x202b5b[_0xcb30('0x3e')]=_['intersection'](_0x202b5b['model'],_0x202b5b[_0xcb30('0x3d')]);_0x490ee2[_0xcb30('0x3f')]=_[_0xcb30('0x40')](_0x202b5b[_0xcb30('0x3b')],qs[_0xcb30('0x41')](_0x3a0351['query']['fields']));_0x490ee2[_0xcb30('0x3f')]=_0x490ee2[_0xcb30('0x3f')][_0xcb30('0x42')]?_0x490ee2['attributes']:_0x202b5b[_0xcb30('0x3b')];if(!_0x3a0351[_0xcb30('0x3d')][_0xcb30('0x43')](_0xcb30('0x44'))){_0x490ee2[_0xcb30('0x27')]=qs[_0xcb30('0x27')](_0x3a0351['query'][_0xcb30('0x27')]);_0x490ee2[_0xcb30('0x25')]=qs[_0xcb30('0x25')](_0x3a0351[_0xcb30('0x3d')][_0xcb30('0x25')]);}_0x490ee2[_0xcb30('0x45')]=qs[_0xcb30('0x46')](_0x3a0351['query'][_0xcb30('0x46')]);_0x490ee2['where']=qs[_0xcb30('0x3e')](_[_0xcb30('0x47')](_0x3a0351[_0xcb30('0x3d')],_0x202b5b['filters']),_0x1b2a43);if(_0x3a0351[_0xcb30('0x3d')]['filter']){_0x490ee2[_0xcb30('0x48')]=_['merge'](_0x490ee2[_0xcb30('0x48')],{'$or':_[_0xcb30('0x3c')](_0x1b2a43,function(_0x32a916){if(_0x32a916[_0xcb30('0x49')]!==_0xcb30('0x4a')){var _0x194e04={};_0x194e04[_0x32a916[_0xcb30('0x35')]]={'$like':'%'+_0x3a0351[_0xcb30('0x3d')][_0xcb30('0x4b')]+'%'};return _0x194e04;}})});}_0x490ee2=_[_0xcb30('0x4c')]({},_0x490ee2,_0x3a0351[_0xcb30('0x4d')]);var _0x1c8a01={'where':_0x490ee2['where']};return db['VoiceContext'][_0xcb30('0x28')](_0x1c8a01)[_0xcb30('0x30')](function(_0x2a6772){_0x20c187[_0xcb30('0x28')]=_0x2a6772;if(_0x3a0351[_0xcb30('0x3d')][_0xcb30('0x4e')]){_0x490ee2['include']=[{'all':!![]}];}return db[_0xcb30('0x4f')][_0xcb30('0x50')](_0x490ee2);})[_0xcb30('0x30')](function(_0x55432f){_0x20c187[_0xcb30('0x51')]=_0x55432f;return _0x20c187;})['then'](respondWithFilteredResult(_0x38017a,_0x490ee2))[_0xcb30('0x23')](handleError(_0x38017a,null));};exports[_0xcb30('0x52')]=function(_0x31d29f,_0x302d1d){var _0x3f8f1d={'raw':![],'where':{'id':_0x31d29f[_0xcb30('0x53')]['id']}},_0x35eefe={};_0x35eefe['model']=_[_0xcb30('0x54')](db[_0xcb30('0x4f')][_0xcb30('0x38')]);_0x35eefe[_0xcb30('0x3d')]=_[_0xcb30('0x54')](_0x31d29f['query']);_0x35eefe['filters']=_['intersection'](_0x35eefe['model'],_0x35eefe[_0xcb30('0x3d')]);_0x3f8f1d[_0xcb30('0x3f')]=_[_0xcb30('0x40')](_0x35eefe['model'],qs['fields'](_0x31d29f[_0xcb30('0x3d')][_0xcb30('0x41')]));_0x3f8f1d[_0xcb30('0x3f')]=_0x3f8f1d[_0xcb30('0x3f')][_0xcb30('0x42')]?_0x3f8f1d['attributes']:_0x35eefe[_0xcb30('0x3b')];if(_0x31d29f['query'][_0xcb30('0x4e')]){_0x3f8f1d[_0xcb30('0x55')]=[{'all':!![]}];}_0x3f8f1d=_[_0xcb30('0x4c')]({},_0x3f8f1d,_0x31d29f['options']);return db['VoiceContext']['find'](_0x3f8f1d)[_0xcb30('0x30')](handleEntityNotFound(_0x302d1d,null))[_0xcb30('0x30')](respondWithResult(_0x302d1d,null))[_0xcb30('0x23')](handleError(_0x302d1d,null));};exports['create']=function(_0x59e8b3,_0x52b3d5,_0x49fcdd){var _0x4b0956;return db[_0xcb30('0x4f')][_0xcb30('0x56')](_0x59e8b3[_0xcb30('0x57')],{'raw':!![]})['then'](function(_0x3e0ea0){_0x4b0956=_0x3e0ea0;return db[_0xcb30('0x4f')]['findAll']({'raw':!![]});})['then'](function(_0x3e5a65){var _0x17af58=fs[_0xcb30('0x58')](path[_0xcb30('0x59')](config[_0xcb30('0x5a')],_0xcb30('0x5b')),'utf8');var _0x502fa9=ejs[_0xcb30('0x5c')](_0x17af58,{'contexts':_0x3e5a65||[]});fs[_0xcb30('0x5d')](_0xcb30('0x5e'),_0x502fa9);})['then'](function(){return respondWithRpcPromise('Reload',_0xcb30('0x56'),{'module':_0xcb30('0x5f')});})[_0xcb30('0x30')](function(){var _0x2e13c3=_0x59e8b3[_0xcb30('0x60')][_0xcb30('0x61')]({'plain':!![]});if(!_0x2e13c3)throw new Error(_0xcb30('0x62'));if(_0x2e13c3[_0xcb30('0x63')]==='user'){var _0x1b461d=_0x4b0956['get']({'plain':!![]});return db[_0xcb30('0x64')]['find']({'where':{'name':_0xcb30('0x65'),'userProfileId':_0x2e13c3[_0xcb30('0x66')]},'raw':!![]})[_0xcb30('0x30')](function(_0x11b218){if(_0x11b218&&_0x11b218[_0xcb30('0x67')]===0x0){return db['UserProfileResource'][_0xcb30('0x56')]({'name':_0x1b461d[_0xcb30('0x35')],'resourceId':_0x1b461d['id'],'type':_0x11b218[_0xcb30('0x35')],'sectionId':_0x11b218['id']},{})[_0xcb30('0x30')](function(){return _0x4b0956;});}else{return _0x4b0956;}})[_0xcb30('0x23')](function(_0x5d7fa0){logger[_0xcb30('0x1f')](_0xcb30('0x68'),_0x5d7fa0);throw _0x5d7fa0;});}return _0x4b0956;})[_0xcb30('0x30')](respondWithResult(_0x52b3d5,0xc9))[_0xcb30('0x23')](handleError(_0x52b3d5,null));};exports[_0xcb30('0x2f')]=function(_0xebbdc,_0x3fc7ff,_0x1789ec){var _0x5c15a4;return db[_0xcb30('0x4f')][_0xcb30('0x69')]({'where':{'id':_0xebbdc[_0xcb30('0x53')]['id']}})[_0xcb30('0x30')](handleEntityNotFound(_0x3fc7ff,null))[_0xcb30('0x30')](saveUpdates(_0xebbdc[_0xcb30('0x57')],null))[_0xcb30('0x30')](function(_0xcb6097){if(_0xcb6097){_0x5c15a4=_0xcb6097;return db[_0xcb30('0x4f')][_0xcb30('0x50')]({'raw':!![]});}})[_0xcb30('0x30')](function(_0x48bd9d){var _0x3bcf73=fs[_0xcb30('0x58')](path['join'](config[_0xcb30('0x5a')],_0xcb30('0x5b')),_0xcb30('0x6a'));var _0x253619=ejs[_0xcb30('0x5c')](_0x3bcf73,{'contexts':_0x48bd9d||[]});fs[_0xcb30('0x5d')](_0xcb30('0x5e'),_0x253619);})[_0xcb30('0x30')](function(){return respondWithRpcPromise('Reload',_0xcb30('0x2f'),{'module':'chan_sip.so'});})[_0xcb30('0x30')](function(){return _0x5c15a4;})[_0xcb30('0x30')](respondWithResult(_0x3fc7ff,null))[_0xcb30('0x23')](handleError(_0x3fc7ff,null));};exports[_0xcb30('0x31')]=function(_0x517c2f,_0x489591,_0x28dc9e){var _0x37b9e3;return db[_0xcb30('0x4f')][_0xcb30('0x69')]({'where':{'id':_0x517c2f['params']['id']}})[_0xcb30('0x30')](handleEntityNotFound(_0x489591,null))['then'](removeEntity(_0x489591,null))[_0xcb30('0x30')](function(){return db[_0xcb30('0x4f')][_0xcb30('0x50')]({'raw':!![]});})[_0xcb30('0x30')](function(_0x557ed0){var _0x545dfb=fs['readFileSync'](path[_0xcb30('0x59')](config[_0xcb30('0x5a')],_0xcb30('0x5b')),_0xcb30('0x6a'));var _0x482e96=ejs[_0xcb30('0x5c')](_0x545dfb,{'contexts':_0x557ed0});fs['writeFileSync'](_0xcb30('0x5e'),_0x482e96);return respondWithRpcPromise(_0xcb30('0x6b'),'destroy',{'module':_0xcb30('0x5f')});})['catch'](handleError(_0x489591,null));};