Built motion from commit e6806ed6.|2.6.0
[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 _0x6c00=['Contexts','UserProfileResource','sendStatus','stack','name','send','index','map','VoiceContext','rawAttributes','fieldName','type','key','query','keys','intersection','attributes','fields','model','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','length','find','create','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','Reload','chan_sip.so','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','readFileSync','/etc/asterisk/extensions_xcally_contexts.conf','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','VoiceContext,\x20%s,\x20%s','message','result','catch','status','end','json','offset','limit','count','set','apply','update','destroy','get'];(function(_0x26ba6e,_0x1ba331){var _0xb44292=function(_0x373c6a){while(--_0x373c6a){_0x26ba6e['push'](_0x26ba6e['shift']());}};_0xb44292(++_0x1ba331);}(_0x6c00,0x1d8));var _0x06c0=function(_0x448f8,_0x2aa1d7){_0x448f8=_0x448f8-0x0;var _0xa73126=_0x6c00[_0x448f8];return _0xa73126;};'use strict';var emlformat=require(_0x06c0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x06c0('0x1'));var jsonpatch=require(_0x06c0('0x2'));var rp=require(_0x06c0('0x3'));var moment=require(_0x06c0('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x06c0('0x5'));var util=require(_0x06c0('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x06c0('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x06c0('0x8'));var squel=require(_0x06c0('0x9'));var crypto=require(_0x06c0('0xa'));var jsforce=require(_0x06c0('0xb'));var deskjs=require(_0x06c0('0xc'));var toCsv=require(_0x06c0('0xd'));var querystring=require(_0x06c0('0xe'));var Papa=require(_0x06c0('0xf'));var Redis=require(_0x06c0('0x10'));var authService=require(_0x06c0('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x06c0('0x12'));var logger=require('../../config/logger')(_0x06c0('0x13'));var utils=require(_0x06c0('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x06c0('0x15'));var db=require(_0x06c0('0x16'))['db'];var jayson=require(_0x06c0('0x17'));var client=jayson[_0x06c0('0x18')][_0x06c0('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x27c49e,_0x1fd7ee,_0x4ba694,_0x45e8d4){return new BPromise(function(_0x74a3af,_0x4be4fa){var _0x454b07=_0x45e8d4||client;return _0x454b07[_0x06c0('0x1a')](_0x27c49e,_0x4ba694)[_0x06c0('0x1b')](function(_0x32b5f0){logger[_0x06c0('0x1c')]('VoiceContext,\x20%s,\x20%s',_0x1fd7ee,_0x06c0('0x1d'));logger[_0x06c0('0x1e')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x1fd7ee,_0x06c0('0x1d'),JSON[_0x06c0('0x1f')](_0x32b5f0));if(_0x32b5f0[_0x06c0('0x20')]){if(_0x32b5f0[_0x06c0('0x20')]['code']===0x1f4){logger[_0x06c0('0x20')](_0x06c0('0x21'),_0x1fd7ee,_0x32b5f0[_0x06c0('0x20')][_0x06c0('0x22')]);return _0x4be4fa(_0x32b5f0[_0x06c0('0x20')][_0x06c0('0x22')]);}logger[_0x06c0('0x20')](_0x06c0('0x21'),_0x1fd7ee,_0x32b5f0['error'][_0x06c0('0x22')]);return _0x74a3af(_0x32b5f0[_0x06c0('0x20')]['message']);}else{logger['info'](_0x06c0('0x21'),_0x1fd7ee,'request\x20sent');_0x74a3af(_0x32b5f0[_0x06c0('0x23')][_0x06c0('0x22')]);}})[_0x06c0('0x24')](function(_0x55a659){logger[_0x06c0('0x20')](_0x06c0('0x21'),_0x1fd7ee,_0x55a659);_0x4be4fa(_0x55a659);});});}function respondWithStatusCode(_0xd94320,_0x16c152){_0x16c152=_0x16c152||0xcc;return function(_0x1f23d9){if(_0x1f23d9){return _0xd94320['sendStatus'](_0x16c152);}return _0xd94320[_0x06c0('0x25')](_0x16c152)[_0x06c0('0x26')]();};}function respondWithResult(_0x3ecde8,_0x3e8b65){_0x3e8b65=_0x3e8b65||0xc8;return function(_0x40545e){if(_0x40545e){return _0x3ecde8[_0x06c0('0x25')](_0x3e8b65)[_0x06c0('0x27')](_0x40545e);}};}function respondWithFilteredResult(_0x4c871a,_0x4d34f3){return function(_0xc90975){if(_0xc90975){var _0x5194c9=typeof _0x4d34f3[_0x06c0('0x28')]==='undefined'&&typeof _0x4d34f3[_0x06c0('0x29')]==='undefined';var _0x3b1eab=_0xc90975['count'];var _0x5876fc=_0x5194c9?0x0:_0x4d34f3['offset'];var _0x1edc8f=_0x5194c9?_0xc90975[_0x06c0('0x2a')]:_0x4d34f3[_0x06c0('0x28')]+_0x4d34f3['limit'];var _0x4d1403;if(_0x1edc8f>=_0x3b1eab){_0x1edc8f=_0x3b1eab;_0x4d1403=0xc8;}else{_0x4d1403=0xce;}_0x4c871a[_0x06c0('0x25')](_0x4d1403);return _0x4c871a[_0x06c0('0x2b')]('Content-Range',_0x5876fc+'-'+_0x1edc8f+'/'+_0x3b1eab)['json'](_0xc90975);}return null;};}function patchUpdates(_0x47ff2a){return function(_0x4496a4){try{jsonpatch[_0x06c0('0x2c')](_0x4496a4,_0x47ff2a,!![]);}catch(_0x34da95){return BPromise['reject'](_0x34da95);}return _0x4496a4['save']();};}function saveUpdates(_0x405721,_0x3f0ccf){return function(_0x393182){if(_0x393182){return _0x393182[_0x06c0('0x2d')](_0x405721)[_0x06c0('0x1b')](function(_0x2fde75){return _0x2fde75;});}return null;};}function removeEntity(_0x7f22f4,_0x35f3c0){return function(_0x15b9e7){if(_0x15b9e7){return _0x15b9e7[_0x06c0('0x2e')]()[_0x06c0('0x1b')](function(){var _0x1723bc=_0x15b9e7[_0x06c0('0x2f')]({'plain':!![]});var _0x44b98a=_0x06c0('0x30');return db[_0x06c0('0x31')][_0x06c0('0x2e')]({'where':{'type':_0x44b98a,'resourceId':_0x1723bc['id']}})['then'](function(){return _0x15b9e7;});})[_0x06c0('0x1b')](function(){_0x7f22f4['status'](0xcc)[_0x06c0('0x26')]();});}};}function handleEntityNotFound(_0x244d8f,_0x72f64c){return function(_0x354e91){if(!_0x354e91){_0x244d8f[_0x06c0('0x32')](0x194);}return _0x354e91;};}function handleError(_0x334fc8,_0x461d61){_0x461d61=_0x461d61||0x1f4;return function(_0x250f83){logger['error'](_0x250f83[_0x06c0('0x33')]);if(_0x250f83['name']){delete _0x250f83[_0x06c0('0x34')];}_0x334fc8['status'](_0x461d61)[_0x06c0('0x35')](_0x250f83);};}exports[_0x06c0('0x36')]=function(_0x45f8df,_0x488d7f){var _0xb012e4={},_0x319b85={},_0x3e3d27={'count':0x0,'rows':[]};var _0x4325f8=_[_0x06c0('0x37')](db[_0x06c0('0x38')][_0x06c0('0x39')],function(_0x5595be){return{'name':_0x5595be[_0x06c0('0x3a')],'type':_0x5595be[_0x06c0('0x3b')][_0x06c0('0x3c')]};});_0x319b85['model']=_[_0x06c0('0x37')](_0x4325f8,_0x06c0('0x34'));_0x319b85[_0x06c0('0x3d')]=_[_0x06c0('0x3e')](_0x45f8df[_0x06c0('0x3d')]);_0x319b85['filters']=_[_0x06c0('0x3f')](_0x319b85['model'],_0x319b85[_0x06c0('0x3d')]);_0xb012e4[_0x06c0('0x40')]=_[_0x06c0('0x3f')](_0x319b85['model'],qs[_0x06c0('0x41')](_0x45f8df[_0x06c0('0x3d')][_0x06c0('0x41')]));_0xb012e4['attributes']=_0xb012e4[_0x06c0('0x40')]['length']?_0xb012e4[_0x06c0('0x40')]:_0x319b85[_0x06c0('0x42')];if(!_0x45f8df[_0x06c0('0x3d')]['hasOwnProperty'](_0x06c0('0x43'))){_0xb012e4['limit']=qs[_0x06c0('0x29')](_0x45f8df['query'][_0x06c0('0x29')]);_0xb012e4[_0x06c0('0x28')]=qs[_0x06c0('0x28')](_0x45f8df[_0x06c0('0x3d')][_0x06c0('0x28')]);}_0xb012e4[_0x06c0('0x44')]=qs[_0x06c0('0x45')](_0x45f8df[_0x06c0('0x3d')][_0x06c0('0x45')]);_0xb012e4[_0x06c0('0x46')]=qs[_0x06c0('0x47')](_[_0x06c0('0x48')](_0x45f8df[_0x06c0('0x3d')],_0x319b85[_0x06c0('0x47')]),_0x4325f8);if(_0x45f8df[_0x06c0('0x3d')][_0x06c0('0x49')]){_0xb012e4[_0x06c0('0x46')]=_[_0x06c0('0x4a')](_0xb012e4['where'],{'$or':_[_0x06c0('0x37')](_0x4325f8,function(_0x1fd2b8){if(_0x1fd2b8[_0x06c0('0x3b')]!==_0x06c0('0x4b')){var _0x18dd1b={};_0x18dd1b[_0x1fd2b8[_0x06c0('0x34')]]={'$like':'%'+_0x45f8df['query']['filter']+'%'};return _0x18dd1b;}})});}_0xb012e4=_['merge']({},_0xb012e4,_0x45f8df[_0x06c0('0x4c')]);var _0x53fdfb={'where':_0xb012e4[_0x06c0('0x46')]};return db[_0x06c0('0x38')]['count'](_0x53fdfb)[_0x06c0('0x1b')](function(_0x3aa941){_0x3e3d27[_0x06c0('0x2a')]=_0x3aa941;if(_0x45f8df[_0x06c0('0x3d')][_0x06c0('0x4d')]){_0xb012e4[_0x06c0('0x4e')]=[{'all':!![]}];}return db['VoiceContext'][_0x06c0('0x4f')](_0xb012e4);})[_0x06c0('0x1b')](function(_0x410b67){_0x3e3d27[_0x06c0('0x50')]=_0x410b67;return _0x3e3d27;})[_0x06c0('0x1b')](respondWithFilteredResult(_0x488d7f,_0xb012e4))[_0x06c0('0x24')](handleError(_0x488d7f,null));};exports[_0x06c0('0x51')]=function(_0x574c72,_0x3b3a5b){var _0xd72c38={'raw':![],'where':{'id':_0x574c72[_0x06c0('0x52')]['id']}},_0x51ebef={};_0x51ebef['model']=_[_0x06c0('0x3e')](db[_0x06c0('0x38')]['rawAttributes']);_0x51ebef['query']=_[_0x06c0('0x3e')](_0x574c72[_0x06c0('0x3d')]);_0x51ebef['filters']=_['intersection'](_0x51ebef[_0x06c0('0x42')],_0x51ebef['query']);_0xd72c38[_0x06c0('0x40')]=_[_0x06c0('0x3f')](_0x51ebef[_0x06c0('0x42')],qs['fields'](_0x574c72[_0x06c0('0x3d')][_0x06c0('0x41')]));_0xd72c38['attributes']=_0xd72c38[_0x06c0('0x40')][_0x06c0('0x53')]?_0xd72c38[_0x06c0('0x40')]:_0x51ebef[_0x06c0('0x42')];if(_0x574c72[_0x06c0('0x3d')][_0x06c0('0x4d')]){_0xd72c38['include']=[{'all':!![]}];}_0xd72c38=_[_0x06c0('0x4a')]({},_0xd72c38,_0x574c72[_0x06c0('0x4c')]);return db['VoiceContext'][_0x06c0('0x54')](_0xd72c38)[_0x06c0('0x1b')](handleEntityNotFound(_0x3b3a5b,null))['then'](respondWithResult(_0x3b3a5b,null))['catch'](handleError(_0x3b3a5b,null));};exports[_0x06c0('0x55')]=function(_0x3178cf,_0xe48eef,_0x549025){var _0x40e94f;return db[_0x06c0('0x38')][_0x06c0('0x55')](_0x3178cf['body'],{'raw':!![]})[_0x06c0('0x1b')](function(_0x3dadea){_0x40e94f=_0x3dadea;return db[_0x06c0('0x38')][_0x06c0('0x4f')]({'raw':!![]});})[_0x06c0('0x1b')](function(_0x3f222d){var _0x3c1130=fs['readFileSync'](path[_0x06c0('0x56')](config[_0x06c0('0x57')],_0x06c0('0x58')),_0x06c0('0x59'));var _0x2daca3=ejs[_0x06c0('0x5a')](_0x3c1130,{'contexts':_0x3f222d||[]});fs[_0x06c0('0x5b')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x2daca3);})[_0x06c0('0x1b')](function(){return respondWithRpcPromise(_0x06c0('0x5c'),'create',{'module':_0x06c0('0x5d')});})[_0x06c0('0x1b')](function(){var _0x4100ee=_0x3178cf['user'][_0x06c0('0x2f')]({'plain':!![]});if(!_0x4100ee)throw new Error(_0x06c0('0x5e'));if(_0x4100ee[_0x06c0('0x5f')]===_0x06c0('0x60')){var _0x20c766=_0x40e94f[_0x06c0('0x2f')]({'plain':!![]});return db[_0x06c0('0x61')][_0x06c0('0x54')]({'where':{'name':_0x06c0('0x30'),'userProfileId':_0x4100ee[_0x06c0('0x62')]},'raw':!![]})[_0x06c0('0x1b')](function(_0x4be9b4){if(_0x4be9b4&&_0x4be9b4[_0x06c0('0x63')]===0x0){return db[_0x06c0('0x31')][_0x06c0('0x55')]({'name':_0x20c766['name'],'resourceId':_0x20c766['id'],'type':_0x4be9b4[_0x06c0('0x34')],'sectionId':_0x4be9b4['id']},{})['then'](function(){return _0x40e94f;});}else{return _0x40e94f;}})[_0x06c0('0x24')](function(_0x3e87eb){logger[_0x06c0('0x20')](_0x06c0('0x64'),_0x3e87eb);throw _0x3e87eb;});}return _0x40e94f;})['then'](respondWithResult(_0xe48eef,0xc9))['catch'](handleError(_0xe48eef,null));};exports['update']=function(_0x5d8cb5,_0x1dd34d,_0x2d3272){var _0x3d2232;return db['VoiceContext'][_0x06c0('0x54')]({'where':{'id':_0x5d8cb5[_0x06c0('0x52')]['id']}})[_0x06c0('0x1b')](handleEntityNotFound(_0x1dd34d,null))[_0x06c0('0x1b')](saveUpdates(_0x5d8cb5[_0x06c0('0x65')],null))[_0x06c0('0x1b')](function(_0x2030b3){if(_0x2030b3){_0x3d2232=_0x2030b3;return db['VoiceContext']['findAll']({'raw':!![]});}})[_0x06c0('0x1b')](function(_0x529a73){var _0xe7fa1c=fs[_0x06c0('0x66')](path[_0x06c0('0x56')](config['root'],_0x06c0('0x58')),_0x06c0('0x59'));var _0x207589=ejs[_0x06c0('0x5a')](_0xe7fa1c,{'contexts':_0x529a73||[]});fs[_0x06c0('0x5b')](_0x06c0('0x67'),_0x207589);})[_0x06c0('0x1b')](function(){return respondWithRpcPromise(_0x06c0('0x5c'),_0x06c0('0x2d'),{'module':_0x06c0('0x5d')});})['then'](function(){return _0x3d2232;})['then'](respondWithResult(_0x1dd34d,null))[_0x06c0('0x24')](handleError(_0x1dd34d,null));};exports['destroy']=function(_0x4ac4ee,_0x2df939,_0x4de27e){var _0x49eb3e;return db[_0x06c0('0x38')][_0x06c0('0x54')]({'where':{'id':_0x4ac4ee[_0x06c0('0x52')]['id']}})[_0x06c0('0x1b')](handleEntityNotFound(_0x2df939,null))['then'](removeEntity(_0x2df939,null))[_0x06c0('0x1b')](function(){return db['VoiceContext'][_0x06c0('0x4f')]({'raw':!![]});})[_0x06c0('0x1b')](function(_0x5f1e67){var _0x58025b=fs[_0x06c0('0x66')](path[_0x06c0('0x56')](config[_0x06c0('0x57')],'server/files/templates/context.ejs'),'utf8');var _0x3143cc=ejs[_0x06c0('0x5a')](_0x58025b,{'contexts':_0x5f1e67});fs[_0x06c0('0x5b')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x3143cc);return respondWithRpcPromise(_0x06c0('0x5c'),_0x06c0('0x2e'),{'module':_0x06c0('0x5d')});})[_0x06c0('0x24')](handleError(_0x2df939,null));};