Built motion from commit 14588770.|2.5.38
[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 _0xb20b=['destroy','then','get','Contexts','UserProfileResource','stack','name','VoiceContext','fieldName','key','map','keys','filters','intersection','model','query','attributes','fields','length','hasOwnProperty','sort','where','pick','merge','type','VIRTUAL','filter','include','rows','params','includeAll','options','find','create','body','findAll','join','server/files/templates/context.ejs','utf8','render','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','role','UserProfileSection','userProfileId','readFileSync','root','writeFileSync','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','request','info','debug','stringify','error','message','VoiceContext,\x20%s,\x20%s','request\x20sent','result','catch','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update'];(function(_0x56b368,_0x2e841d){var _0x989ddf=function(_0xd8e9d2){while(--_0xd8e9d2){_0x56b368['push'](_0x56b368['shift']());}};_0x989ddf(++_0x2e841d);}(_0xb20b,0x93));var _0xbb20=function(_0x298de8,_0x18acad){_0x298de8=_0x298de8-0x0;var _0x18de47=_0xb20b[_0x298de8];return _0x18de47;};'use strict';var emlformat=require(_0xbb20('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbb20('0x1'));var jsonpatch=require(_0xbb20('0x2'));var rp=require(_0xbb20('0x3'));var moment=require(_0xbb20('0x4'));var BPromise=require(_0xbb20('0x5'));var Mustache=require(_0xbb20('0x6'));var util=require(_0xbb20('0x7'));var path=require(_0xbb20('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xbb20('0x9'));var fs=require('fs');var fs_extra=require(_0xbb20('0xa'));var _=require(_0xbb20('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xbb20('0xc'));var querystring=require(_0xbb20('0xd'));var Papa=require('papaparse');var Redis=require(_0xbb20('0xe'));var authService=require(_0xbb20('0xf'));var qs=require(_0xbb20('0x10'));var as=require(_0xbb20('0x11'));var hardwareService=require(_0xbb20('0x12'));var logger=require(_0xbb20('0x13'))('api');var utils=require(_0xbb20('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xbb20('0x15'));var db=require(_0xbb20('0x16'))['db'];var jayson=require(_0xbb20('0x17'));var client=jayson[_0xbb20('0x18')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1deda4,_0x3895ab,_0x40838d,_0x2a99cd){return new BPromise(function(_0x5c1ec2,_0x48303c){var _0xd9f246=_0x2a99cd||client;return _0xd9f246[_0xbb20('0x19')](_0x1deda4,_0x40838d)['then'](function(_0x3a84de){logger[_0xbb20('0x1a')]('VoiceContext,\x20%s,\x20%s',_0x3895ab,'request\x20sent');logger[_0xbb20('0x1b')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x3895ab,'request\x20sent',JSON[_0xbb20('0x1c')](_0x3a84de));if(_0x3a84de[_0xbb20('0x1d')]){if(_0x3a84de[_0xbb20('0x1d')]['code']===0x1f4){logger[_0xbb20('0x1d')]('VoiceContext,\x20%s,\x20%s',_0x3895ab,_0x3a84de['error'][_0xbb20('0x1e')]);return _0x48303c(_0x3a84de['error'][_0xbb20('0x1e')]);}logger['error'](_0xbb20('0x1f'),_0x3895ab,_0x3a84de['error'][_0xbb20('0x1e')]);return _0x5c1ec2(_0x3a84de['error']['message']);}else{logger[_0xbb20('0x1a')]('VoiceContext,\x20%s,\x20%s',_0x3895ab,_0xbb20('0x20'));_0x5c1ec2(_0x3a84de[_0xbb20('0x21')][_0xbb20('0x1e')]);}})[_0xbb20('0x22')](function(_0x37bfed){logger[_0xbb20('0x1d')]('VoiceContext,\x20%s,\x20%s',_0x3895ab,_0x37bfed);_0x48303c(_0x37bfed);});});}function respondWithStatusCode(_0xd75062,_0x1016fa){_0x1016fa=_0x1016fa||0xcc;return function(_0x22ed3d){if(_0x22ed3d){return _0xd75062['sendStatus'](_0x1016fa);}return _0xd75062[_0xbb20('0x23')](_0x1016fa)[_0xbb20('0x24')]();};}function respondWithResult(_0x4b43a4,_0x28c6fc){_0x28c6fc=_0x28c6fc||0xc8;return function(_0x598bce){if(_0x598bce){return _0x4b43a4[_0xbb20('0x23')](_0x28c6fc)[_0xbb20('0x25')](_0x598bce);}};}function respondWithFilteredResult(_0x1ebc2b,_0x54c9ed){return function(_0x5a08b7){if(_0x5a08b7){var _0x601efa=typeof _0x54c9ed[_0xbb20('0x26')]===_0xbb20('0x27')&&typeof _0x54c9ed[_0xbb20('0x28')]===_0xbb20('0x27');var _0x275f2b=_0x5a08b7[_0xbb20('0x29')];var _0x355950=_0x601efa?0x0:_0x54c9ed[_0xbb20('0x26')];var _0x4057e9=_0x601efa?_0x5a08b7[_0xbb20('0x29')]:_0x54c9ed[_0xbb20('0x26')]+_0x54c9ed[_0xbb20('0x28')];var _0x125f49;if(_0x4057e9>=_0x275f2b){_0x4057e9=_0x275f2b;_0x125f49=0xc8;}else{_0x125f49=0xce;}_0x1ebc2b[_0xbb20('0x23')](_0x125f49);return _0x1ebc2b['set'](_0xbb20('0x2a'),_0x355950+'-'+_0x4057e9+'/'+_0x275f2b)[_0xbb20('0x25')](_0x5a08b7);}return null;};}function patchUpdates(_0x3e37c0){return function(_0x4d43e2){try{jsonpatch[_0xbb20('0x2b')](_0x4d43e2,_0x3e37c0,!![]);}catch(_0x261bb8){return BPromise[_0xbb20('0x2c')](_0x261bb8);}return _0x4d43e2[_0xbb20('0x2d')]();};}function saveUpdates(_0x53b109,_0x525afa){return function(_0x562359){if(_0x562359){return _0x562359[_0xbb20('0x2e')](_0x53b109)['then'](function(_0x1d4a4f){return _0x1d4a4f;});}return null;};}function removeEntity(_0x4afe8c,_0x2df483){return function(_0x135b15){if(_0x135b15){return _0x135b15[_0xbb20('0x2f')]()[_0xbb20('0x30')](function(){var _0x4beeda=_0x135b15[_0xbb20('0x31')]({'plain':!![]});var _0x5cb9dd=_0xbb20('0x32');return db[_0xbb20('0x33')]['destroy']({'where':{'type':_0x5cb9dd,'resourceId':_0x4beeda['id']}})['then'](function(){return _0x135b15;});})[_0xbb20('0x30')](function(){_0x4afe8c['status'](0xcc)[_0xbb20('0x24')]();});}};}function handleEntityNotFound(_0x92939d,_0x4bdf1e){return function(_0x9556c1){if(!_0x9556c1){_0x92939d['sendStatus'](0x194);}return _0x9556c1;};}function handleError(_0x218228,_0xf7f38b){_0xf7f38b=_0xf7f38b||0x1f4;return function(_0x2b778d){logger[_0xbb20('0x1d')](_0x2b778d[_0xbb20('0x34')]);if(_0x2b778d['name']){delete _0x2b778d[_0xbb20('0x35')];}_0x218228[_0xbb20('0x23')](_0xf7f38b)['send'](_0x2b778d);};}exports['index']=function(_0x425d93,_0x464a46){var _0x70e3d={},_0x7ae9aa={},_0x38cd42={'count':0x0,'rows':[]};var _0x441baa=_['map'](db[_0xbb20('0x36')]['rawAttributes'],function(_0x361ba0){return{'name':_0x361ba0[_0xbb20('0x37')],'type':_0x361ba0['type'][_0xbb20('0x38')]};});_0x7ae9aa['model']=_[_0xbb20('0x39')](_0x441baa,_0xbb20('0x35'));_0x7ae9aa['query']=_[_0xbb20('0x3a')](_0x425d93['query']);_0x7ae9aa[_0xbb20('0x3b')]=_[_0xbb20('0x3c')](_0x7ae9aa[_0xbb20('0x3d')],_0x7ae9aa[_0xbb20('0x3e')]);_0x70e3d[_0xbb20('0x3f')]=_[_0xbb20('0x3c')](_0x7ae9aa[_0xbb20('0x3d')],qs['fields'](_0x425d93['query'][_0xbb20('0x40')]));_0x70e3d[_0xbb20('0x3f')]=_0x70e3d['attributes'][_0xbb20('0x41')]?_0x70e3d['attributes']:_0x7ae9aa['model'];if(!_0x425d93[_0xbb20('0x3e')][_0xbb20('0x42')]('nolimit')){_0x70e3d[_0xbb20('0x28')]=qs[_0xbb20('0x28')](_0x425d93['query'][_0xbb20('0x28')]);_0x70e3d[_0xbb20('0x26')]=qs[_0xbb20('0x26')](_0x425d93[_0xbb20('0x3e')][_0xbb20('0x26')]);}_0x70e3d['order']=qs[_0xbb20('0x43')](_0x425d93['query']['sort']);_0x70e3d[_0xbb20('0x44')]=qs[_0xbb20('0x3b')](_[_0xbb20('0x45')](_0x425d93['query'],_0x7ae9aa['filters']),_0x441baa);if(_0x425d93['query']['filter']){_0x70e3d[_0xbb20('0x44')]=_[_0xbb20('0x46')](_0x70e3d[_0xbb20('0x44')],{'$or':_[_0xbb20('0x39')](_0x441baa,function(_0x1191fa){if(_0x1191fa[_0xbb20('0x47')]!==_0xbb20('0x48')){var _0x22025d={};_0x22025d[_0x1191fa[_0xbb20('0x35')]]={'$like':'%'+_0x425d93[_0xbb20('0x3e')][_0xbb20('0x49')]+'%'};return _0x22025d;}})});}_0x70e3d=_[_0xbb20('0x46')]({},_0x70e3d,_0x425d93['options']);var _0x13f66c={'where':_0x70e3d[_0xbb20('0x44')]};return db['VoiceContext'][_0xbb20('0x29')](_0x13f66c)[_0xbb20('0x30')](function(_0x29f6cc){_0x38cd42['count']=_0x29f6cc;if(_0x425d93[_0xbb20('0x3e')]['includeAll']){_0x70e3d[_0xbb20('0x4a')]=[{'all':!![]}];}return db[_0xbb20('0x36')]['findAll'](_0x70e3d);})['then'](function(_0x43ee7c){_0x38cd42[_0xbb20('0x4b')]=_0x43ee7c;return _0x38cd42;})[_0xbb20('0x30')](respondWithFilteredResult(_0x464a46,_0x70e3d))[_0xbb20('0x22')](handleError(_0x464a46,null));};exports['show']=function(_0x420e1d,_0x31c4f3){var _0x545ce3={'raw':![],'where':{'id':_0x420e1d[_0xbb20('0x4c')]['id']}},_0x5739d7={};_0x5739d7[_0xbb20('0x3d')]=_[_0xbb20('0x3a')](db[_0xbb20('0x36')]['rawAttributes']);_0x5739d7[_0xbb20('0x3e')]=_[_0xbb20('0x3a')](_0x420e1d[_0xbb20('0x3e')]);_0x5739d7[_0xbb20('0x3b')]=_[_0xbb20('0x3c')](_0x5739d7[_0xbb20('0x3d')],_0x5739d7[_0xbb20('0x3e')]);_0x545ce3['attributes']=_[_0xbb20('0x3c')](_0x5739d7[_0xbb20('0x3d')],qs[_0xbb20('0x40')](_0x420e1d[_0xbb20('0x3e')][_0xbb20('0x40')]));_0x545ce3[_0xbb20('0x3f')]=_0x545ce3[_0xbb20('0x3f')][_0xbb20('0x41')]?_0x545ce3[_0xbb20('0x3f')]:_0x5739d7['model'];if(_0x420e1d[_0xbb20('0x3e')][_0xbb20('0x4d')]){_0x545ce3['include']=[{'all':!![]}];}_0x545ce3=_[_0xbb20('0x46')]({},_0x545ce3,_0x420e1d[_0xbb20('0x4e')]);return db[_0xbb20('0x36')][_0xbb20('0x4f')](_0x545ce3)['then'](handleEntityNotFound(_0x31c4f3,null))[_0xbb20('0x30')](respondWithResult(_0x31c4f3,null))['catch'](handleError(_0x31c4f3,null));};exports[_0xbb20('0x50')]=function(_0x24b0e9,_0x271d94,_0x13aeb9){var _0x333b24;return db['VoiceContext'][_0xbb20('0x50')](_0x24b0e9[_0xbb20('0x51')],{'raw':!![]})[_0xbb20('0x30')](function(_0x2c0625){_0x333b24=_0x2c0625;return db[_0xbb20('0x36')][_0xbb20('0x52')]({'raw':!![]});})[_0xbb20('0x30')](function(_0x5e1b8d){var _0x91bd6b=fs['readFileSync'](path[_0xbb20('0x53')](config['root'],_0xbb20('0x54')),_0xbb20('0x55'));var _0x39fc2d=ejs[_0xbb20('0x56')](_0x91bd6b,{'contexts':_0x5e1b8d||[]});fs['writeFileSync'](_0xbb20('0x57'),_0x39fc2d);})[_0xbb20('0x30')](function(){return respondWithRpcPromise(_0xbb20('0x58'),_0xbb20('0x50'),{'module':_0xbb20('0x59')});})[_0xbb20('0x30')](function(){var _0x477b16=_0x24b0e9[_0xbb20('0x5a')][_0xbb20('0x31')]({'plain':!![]});if(!_0x477b16)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x477b16[_0xbb20('0x5b')]==='user'){var _0xf3e0d3=_0x333b24[_0xbb20('0x31')]({'plain':!![]});return db[_0xbb20('0x5c')][_0xbb20('0x4f')]({'where':{'name':_0xbb20('0x32'),'userProfileId':_0x477b16[_0xbb20('0x5d')]},'raw':!![]})[_0xbb20('0x30')](function(_0x1a77f3){if(_0x1a77f3&&_0x1a77f3['autoAssociation']===0x0){return db[_0xbb20('0x33')][_0xbb20('0x50')]({'name':_0xf3e0d3[_0xbb20('0x35')],'resourceId':_0xf3e0d3['id'],'type':_0x1a77f3['name'],'sectionId':_0x1a77f3['id']},{})[_0xbb20('0x30')](function(){return _0x333b24;});}else{return _0x333b24;}})[_0xbb20('0x22')](function(_0x39d661){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x39d661);throw _0x39d661;});}return _0x333b24;})[_0xbb20('0x30')](respondWithResult(_0x271d94,0xc9))['catch'](handleError(_0x271d94,null));};exports[_0xbb20('0x2e')]=function(_0x5f2f92,_0x9b994e,_0x258458){var _0x3e545b;return db[_0xbb20('0x36')][_0xbb20('0x4f')]({'where':{'id':_0x5f2f92[_0xbb20('0x4c')]['id']}})[_0xbb20('0x30')](handleEntityNotFound(_0x9b994e,null))['then'](saveUpdates(_0x5f2f92['body'],null))[_0xbb20('0x30')](function(_0x49bf68){if(_0x49bf68){_0x3e545b=_0x49bf68;return db['VoiceContext'][_0xbb20('0x52')]({'raw':!![]});}})[_0xbb20('0x30')](function(_0x2a9d82){var _0x18c0bf=fs[_0xbb20('0x5e')](path['join'](config[_0xbb20('0x5f')],_0xbb20('0x54')),'utf8');var _0x52f6b5=ejs[_0xbb20('0x56')](_0x18c0bf,{'contexts':_0x2a9d82||[]});fs[_0xbb20('0x60')](_0xbb20('0x57'),_0x52f6b5);})[_0xbb20('0x30')](function(){return respondWithRpcPromise('Reload',_0xbb20('0x2e'),{'module':_0xbb20('0x59')});})[_0xbb20('0x30')](function(){return _0x3e545b;})[_0xbb20('0x30')](respondWithResult(_0x9b994e,null))[_0xbb20('0x22')](handleError(_0x9b994e,null));};exports['destroy']=function(_0x1ad9c3,_0x1873ce,_0x37fad2){var _0xb1185c;return db[_0xbb20('0x36')][_0xbb20('0x4f')]({'where':{'id':_0x1ad9c3['params']['id']}})[_0xbb20('0x30')](handleEntityNotFound(_0x1873ce,null))['then'](removeEntity(_0x1873ce,null))[_0xbb20('0x30')](function(){return db[_0xbb20('0x36')][_0xbb20('0x52')]({'raw':!![]});})[_0xbb20('0x30')](function(_0x20a0df){var _0x13a035=fs[_0xbb20('0x5e')](path[_0xbb20('0x53')](config['root'],_0xbb20('0x54')),'utf8');var _0x309eea=ejs['render'](_0x13a035,{'contexts':_0x20a0df});fs[_0xbb20('0x60')](_0xbb20('0x57'),_0x309eea);return respondWithRpcPromise(_0xbb20('0x58'),_0xbb20('0x2f'),{'module':_0xbb20('0x59')});})['catch'](handleError(_0x1873ce,null));};