1408dedb467d70bb80c5bebe0404905238557ef8
[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 _0xd242=['result','catch','status','end','offset','limit','undefined','count','set','apply','reject','save','update','destroy','Contexts','UserProfileResource','stack','name','send','index','fieldName','type','key','model','keys','filters','intersection','attributes','fields','query','length','nolimit','order','sort','pick','filter','where','merge','map','options','VoiceContext','includeAll','rows','show','rawAttributes','include','create','body','readFileSync','root','server/files/templates/context.ejs','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','join','utf8','render','findAll','eml-format','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','request','then','info','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','message','VoiceContext,\x20%s,\x20%s'];(function(_0x25d2fb,_0x18a774){var _0x1ded53=function(_0x4c0715){while(--_0x4c0715){_0x25d2fb['push'](_0x25d2fb['shift']());}};_0x1ded53(++_0x18a774);}(_0xd242,0x1e1));var _0x2d24=function(_0x46b8f8,_0x3f9908){_0x46b8f8=_0x46b8f8-0x0;var _0x28eafe=_0xd242[_0x46b8f8];return _0x28eafe;};'use strict';var emlformat=require(_0x2d24('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2d24('0x1'));var rp=require('request-promise');var moment=require(_0x2d24('0x2'));var BPromise=require(_0x2d24('0x3'));var Mustache=require(_0x2d24('0x4'));var util=require(_0x2d24('0x5'));var path=require('path');var sox=require(_0x2d24('0x6'));var csv=require(_0x2d24('0x7'));var ejs=require(_0x2d24('0x8'));var fs=require('fs');var fs_extra=require(_0x2d24('0x9'));var _=require('lodash');var squel=require(_0x2d24('0xa'));var crypto=require(_0x2d24('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x2d24('0xc'));var toCsv=require(_0x2d24('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x2d24('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x2d24('0xe'));var as=require(_0x2d24('0xf'));var hardwareService=require(_0x2d24('0x10'));var logger=require(_0x2d24('0x11'))(_0x2d24('0x12'));var utils=require(_0x2d24('0x13'));var config=require(_0x2d24('0x14'));var licenseUtil=require(_0x2d24('0x15'));var db=require(_0x2d24('0x16'))['db'];var jayson=require(_0x2d24('0x17'));var client=jayson[_0x2d24('0x18')]['http']({'port':0x232a});function respondWithRpcPromise(_0x31e194,_0x361b13,_0x4b07b9,_0x3ffa74){return new BPromise(function(_0x31bc58,_0xc4e858){var _0x27f7c5=_0x3ffa74||client;return _0x27f7c5[_0x2d24('0x19')](_0x31e194,_0x4b07b9)[_0x2d24('0x1a')](function(_0x4a916b){logger[_0x2d24('0x1b')]('VoiceContext,\x20%s,\x20%s',_0x361b13,_0x2d24('0x1c'));logger[_0x2d24('0x1d')](_0x2d24('0x1e'),_0x361b13,'request\x20sent',JSON['stringify'](_0x4a916b));if(_0x4a916b['error']){if(_0x4a916b[_0x2d24('0x1f')]['code']===0x1f4){logger[_0x2d24('0x1f')]('VoiceContext,\x20%s,\x20%s',_0x361b13,_0x4a916b[_0x2d24('0x1f')]['message']);return _0xc4e858(_0x4a916b['error'][_0x2d24('0x20')]);}logger[_0x2d24('0x1f')]('VoiceContext,\x20%s,\x20%s',_0x361b13,_0x4a916b[_0x2d24('0x1f')][_0x2d24('0x20')]);return _0x31bc58(_0x4a916b[_0x2d24('0x1f')][_0x2d24('0x20')]);}else{logger['info'](_0x2d24('0x21'),_0x361b13,_0x2d24('0x1c'));_0x31bc58(_0x4a916b[_0x2d24('0x22')][_0x2d24('0x20')]);}})[_0x2d24('0x23')](function(_0x3f0049){logger[_0x2d24('0x1f')]('VoiceContext,\x20%s,\x20%s',_0x361b13,_0x3f0049);_0xc4e858(_0x3f0049);});});}function respondWithStatusCode(_0x529b98,_0x26ee5d){_0x26ee5d=_0x26ee5d||0xcc;return function(_0x1f7b27){if(_0x1f7b27){return _0x529b98['sendStatus'](_0x26ee5d);}return _0x529b98[_0x2d24('0x24')](_0x26ee5d)[_0x2d24('0x25')]();};}function respondWithResult(_0x302f37,_0x33a4ea){_0x33a4ea=_0x33a4ea||0xc8;return function(_0x12f2a9){if(_0x12f2a9){return _0x302f37[_0x2d24('0x24')](_0x33a4ea)['json'](_0x12f2a9);}};}function respondWithFilteredResult(_0x3653b7,_0x3dc599){return function(_0x5e703a){if(_0x5e703a){var _0x2e4429=typeof _0x3dc599[_0x2d24('0x26')]==='undefined'&&typeof _0x3dc599[_0x2d24('0x27')]===_0x2d24('0x28');var _0x5beafd=_0x5e703a[_0x2d24('0x29')];var _0x30c078=_0x2e4429?0x0:_0x3dc599['offset'];var _0x162ec9=_0x2e4429?_0x5e703a[_0x2d24('0x29')]:_0x3dc599['offset']+_0x3dc599[_0x2d24('0x27')];var _0x11a561;if(_0x162ec9>=_0x5beafd){_0x162ec9=_0x5beafd;_0x11a561=0xc8;}else{_0x11a561=0xce;}_0x3653b7[_0x2d24('0x24')](_0x11a561);return _0x3653b7[_0x2d24('0x2a')]('Content-Range',_0x30c078+'-'+_0x162ec9+'/'+_0x5beafd)['json'](_0x5e703a);}return null;};}function patchUpdates(_0x4b9584){return function(_0x1ccb39){try{jsonpatch[_0x2d24('0x2b')](_0x1ccb39,_0x4b9584,!![]);}catch(_0x39a5d6){return BPromise[_0x2d24('0x2c')](_0x39a5d6);}return _0x1ccb39[_0x2d24('0x2d')]();};}function saveUpdates(_0x1c3c8b,_0x5668cf){return function(_0x2f1def){if(_0x2f1def){return _0x2f1def[_0x2d24('0x2e')](_0x1c3c8b)[_0x2d24('0x1a')](function(_0x970c10){return _0x970c10;});}return null;};}function removeEntity(_0x4bf34a,_0x1f6036){return function(_0x50cefa){if(_0x50cefa){return _0x50cefa[_0x2d24('0x2f')]()[_0x2d24('0x1a')](function(){var _0x28aeaa=_0x50cefa['get']({'plain':!![]});var _0x3b6662=_0x2d24('0x30');return db[_0x2d24('0x31')][_0x2d24('0x2f')]({'where':{'type':_0x3b6662,'resourceId':_0x28aeaa['id']}})['then'](function(){return _0x50cefa;});})[_0x2d24('0x1a')](function(){_0x4bf34a[_0x2d24('0x24')](0xcc)[_0x2d24('0x25')]();});}};}function handleEntityNotFound(_0x5d6482,_0x2b334d){return function(_0x4f7dbb){if(!_0x4f7dbb){_0x5d6482['sendStatus'](0x194);}return _0x4f7dbb;};}function handleError(_0x4eb9d5,_0x335570){_0x335570=_0x335570||0x1f4;return function(_0x1e39df){logger[_0x2d24('0x1f')](_0x1e39df[_0x2d24('0x32')]);if(_0x1e39df['name']){delete _0x1e39df[_0x2d24('0x33')];}_0x4eb9d5[_0x2d24('0x24')](_0x335570)[_0x2d24('0x34')](_0x1e39df);};}exports[_0x2d24('0x35')]=function(_0xbab3a7,_0x5026fd){var _0x4f7dc4={},_0x4ed62d={},_0x2ed715={'count':0x0,'rows':[]};var _0x134332=_['map'](db['VoiceContext']['rawAttributes'],function(_0x45587e){return{'name':_0x45587e[_0x2d24('0x36')],'type':_0x45587e[_0x2d24('0x37')][_0x2d24('0x38')]};});_0x4ed62d[_0x2d24('0x39')]=_['map'](_0x134332,_0x2d24('0x33'));_0x4ed62d['query']=_[_0x2d24('0x3a')](_0xbab3a7['query']);_0x4ed62d[_0x2d24('0x3b')]=_[_0x2d24('0x3c')](_0x4ed62d[_0x2d24('0x39')],_0x4ed62d['query']);_0x4f7dc4[_0x2d24('0x3d')]=_['intersection'](_0x4ed62d[_0x2d24('0x39')],qs[_0x2d24('0x3e')](_0xbab3a7[_0x2d24('0x3f')][_0x2d24('0x3e')]));_0x4f7dc4['attributes']=_0x4f7dc4['attributes'][_0x2d24('0x40')]?_0x4f7dc4[_0x2d24('0x3d')]:_0x4ed62d[_0x2d24('0x39')];if(!_0xbab3a7[_0x2d24('0x3f')]['hasOwnProperty'](_0x2d24('0x41'))){_0x4f7dc4[_0x2d24('0x27')]=qs[_0x2d24('0x27')](_0xbab3a7[_0x2d24('0x3f')][_0x2d24('0x27')]);_0x4f7dc4['offset']=qs[_0x2d24('0x26')](_0xbab3a7[_0x2d24('0x3f')]['offset']);}_0x4f7dc4[_0x2d24('0x42')]=qs['sort'](_0xbab3a7[_0x2d24('0x3f')][_0x2d24('0x43')]);_0x4f7dc4['where']=qs[_0x2d24('0x3b')](_[_0x2d24('0x44')](_0xbab3a7[_0x2d24('0x3f')],_0x4ed62d[_0x2d24('0x3b')]),_0x134332);if(_0xbab3a7[_0x2d24('0x3f')][_0x2d24('0x45')]){_0x4f7dc4[_0x2d24('0x46')]=_[_0x2d24('0x47')](_0x4f7dc4['where'],{'$or':_[_0x2d24('0x48')](_0x134332,function(_0x3b1aa0){if(_0x3b1aa0[_0x2d24('0x37')]!=='VIRTUAL'){var _0x4133ec={};_0x4133ec[_0x3b1aa0[_0x2d24('0x33')]]={'$like':'%'+_0xbab3a7[_0x2d24('0x3f')]['filter']+'%'};return _0x4133ec;}})});}_0x4f7dc4=_['merge']({},_0x4f7dc4,_0xbab3a7[_0x2d24('0x49')]);var _0x43e006={'where':_0x4f7dc4[_0x2d24('0x46')]};return db[_0x2d24('0x4a')][_0x2d24('0x29')](_0x43e006)[_0x2d24('0x1a')](function(_0x540b55){_0x2ed715[_0x2d24('0x29')]=_0x540b55;if(_0xbab3a7[_0x2d24('0x3f')][_0x2d24('0x4b')]){_0x4f7dc4['include']=[{'all':!![]}];}return db[_0x2d24('0x4a')]['findAll'](_0x4f7dc4);})[_0x2d24('0x1a')](function(_0x5358cf){_0x2ed715[_0x2d24('0x4c')]=_0x5358cf;return _0x2ed715;})[_0x2d24('0x1a')](respondWithFilteredResult(_0x5026fd,_0x4f7dc4))[_0x2d24('0x23')](handleError(_0x5026fd,null));};exports[_0x2d24('0x4d')]=function(_0x40d455,_0x54e9e7){var _0x7454be={'raw':![],'where':{'id':_0x40d455['params']['id']}},_0xcaa347={};_0xcaa347[_0x2d24('0x39')]=_[_0x2d24('0x3a')](db[_0x2d24('0x4a')][_0x2d24('0x4e')]);_0xcaa347[_0x2d24('0x3f')]=_[_0x2d24('0x3a')](_0x40d455[_0x2d24('0x3f')]);_0xcaa347[_0x2d24('0x3b')]=_['intersection'](_0xcaa347['model'],_0xcaa347[_0x2d24('0x3f')]);_0x7454be[_0x2d24('0x3d')]=_[_0x2d24('0x3c')](_0xcaa347[_0x2d24('0x39')],qs[_0x2d24('0x3e')](_0x40d455[_0x2d24('0x3f')][_0x2d24('0x3e')]));_0x7454be[_0x2d24('0x3d')]=_0x7454be[_0x2d24('0x3d')]['length']?_0x7454be[_0x2d24('0x3d')]:_0xcaa347[_0x2d24('0x39')];if(_0x40d455['query']['includeAll']){_0x7454be[_0x2d24('0x4f')]=[{'all':!![]}];}_0x7454be=_[_0x2d24('0x47')]({},_0x7454be,_0x40d455[_0x2d24('0x49')]);return db[_0x2d24('0x4a')]['find'](_0x7454be)[_0x2d24('0x1a')](handleEntityNotFound(_0x54e9e7,null))['then'](respondWithResult(_0x54e9e7,null))[_0x2d24('0x23')](handleError(_0x54e9e7,null));};exports['create']=function(_0x4fbbf3,_0x52dba5,_0x2d86e7){var _0x13752a;return db[_0x2d24('0x4a')][_0x2d24('0x50')](_0x4fbbf3[_0x2d24('0x51')],{'raw':!![]})[_0x2d24('0x1a')](function(_0x4db828){_0x13752a=_0x4db828;return db[_0x2d24('0x4a')]['findAll']({'raw':!![]});})['then'](function(_0x29ea91){var _0x30e5ce=fs[_0x2d24('0x52')](path['join'](config[_0x2d24('0x53')],_0x2d24('0x54')),'utf8');var _0x51e94d=ejs['render'](_0x30e5ce,{'contexts':_0x29ea91||[]});fs[_0x2d24('0x55')](_0x2d24('0x56'),_0x51e94d);})[_0x2d24('0x1a')](function(){return respondWithRpcPromise(_0x2d24('0x57'),'create',{'module':_0x2d24('0x58')});})['then'](function(){var _0x20d2fd=_0x4fbbf3[_0x2d24('0x59')]['get']({'plain':!![]});if(!_0x20d2fd)throw new Error(_0x2d24('0x5a'));if(_0x20d2fd[_0x2d24('0x5b')]==='user'){var _0x13d739=_0x13752a[_0x2d24('0x5c')]({'plain':!![]});return db[_0x2d24('0x5d')][_0x2d24('0x5e')]({'where':{'name':_0x2d24('0x30'),'userProfileId':_0x20d2fd[_0x2d24('0x5f')]},'raw':!![]})['then'](function(_0xba2d2d){if(_0xba2d2d&&_0xba2d2d[_0x2d24('0x60')]===0x0){return db[_0x2d24('0x31')][_0x2d24('0x50')]({'name':_0x13d739['name'],'resourceId':_0x13d739['id'],'type':_0xba2d2d[_0x2d24('0x33')],'sectionId':_0xba2d2d['id']},{})[_0x2d24('0x1a')](function(){return _0x13752a;});}else{return _0x13752a;}})[_0x2d24('0x23')](function(_0x4d1842){logger[_0x2d24('0x1f')](_0x2d24('0x61'),_0x4d1842);throw _0x4d1842;});}return _0x13752a;})[_0x2d24('0x1a')](respondWithResult(_0x52dba5,0xc9))[_0x2d24('0x23')](handleError(_0x52dba5,null));};exports[_0x2d24('0x2e')]=function(_0x2c55e4,_0x4cebea,_0x2c82d5){var _0x1b3886;return db[_0x2d24('0x4a')][_0x2d24('0x5e')]({'where':{'id':_0x2c55e4[_0x2d24('0x62')]['id']}})[_0x2d24('0x1a')](handleEntityNotFound(_0x4cebea,null))['then'](saveUpdates(_0x2c55e4['body'],null))[_0x2d24('0x1a')](function(_0x401c2b){if(_0x401c2b){_0x1b3886=_0x401c2b;return db[_0x2d24('0x4a')]['findAll']({'raw':!![]});}})[_0x2d24('0x1a')](function(_0x3f1d7e){var _0xe747d=fs[_0x2d24('0x52')](path[_0x2d24('0x63')](config[_0x2d24('0x53')],_0x2d24('0x54')),_0x2d24('0x64'));var _0x4e4522=ejs[_0x2d24('0x65')](_0xe747d,{'contexts':_0x3f1d7e||[]});fs['writeFileSync'](_0x2d24('0x56'),_0x4e4522);})[_0x2d24('0x1a')](function(){return respondWithRpcPromise(_0x2d24('0x57'),_0x2d24('0x2e'),{'module':_0x2d24('0x58')});})[_0x2d24('0x1a')](function(){return _0x1b3886;})[_0x2d24('0x1a')](respondWithResult(_0x4cebea,null))[_0x2d24('0x23')](handleError(_0x4cebea,null));};exports[_0x2d24('0x2f')]=function(_0x233f4d,_0x4dd558,_0x3386e4){var _0x2f97fb;return db[_0x2d24('0x4a')][_0x2d24('0x5e')]({'where':{'id':_0x233f4d[_0x2d24('0x62')]['id']}})[_0x2d24('0x1a')](handleEntityNotFound(_0x4dd558,null))[_0x2d24('0x1a')](removeEntity(_0x4dd558,null))[_0x2d24('0x1a')](function(){return db['VoiceContext'][_0x2d24('0x66')]({'raw':!![]});})[_0x2d24('0x1a')](function(_0x3a4d29){var _0x593b1b=fs['readFileSync'](path[_0x2d24('0x63')](config[_0x2d24('0x53')],_0x2d24('0x54')),_0x2d24('0x64'));var _0x53658f=ejs['render'](_0x593b1b,{'contexts':_0x3a4d29});fs['writeFileSync'](_0x2d24('0x56'),_0x53658f);return respondWithRpcPromise(_0x2d24('0x57'),'destroy',{'module':_0x2d24('0x58')});})[_0x2d24('0x23')](handleError(_0x4dd558,null));};