3317fbbdd2fbd544e6a394daf9d24b65fadb602f
[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 _0xc5ba=['client','http','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','message','result','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','destroy','get','UserProfileResource','stack','name','index','map','VoiceContext','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','keys','fields','length','find','create','body','readFileSync','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','join','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise'];(function(_0x5e21ae,_0x40556b){var _0x5d2729=function(_0x5dcb11){while(--_0x5dcb11){_0x5e21ae['push'](_0x5e21ae['shift']());}};_0x5d2729(++_0x40556b);}(_0xc5ba,0xb9));var _0xac5b=function(_0x592307,_0x2b8719){_0x592307=_0x592307-0x0;var _0x244eb8=_0xc5ba[_0x592307];return _0x244eb8;};'use strict';var pdf=require(_0xac5b('0x0'));var emlformat=require(_0xac5b('0x1'));var rimraf=require(_0xac5b('0x2'));var zipdir=require(_0xac5b('0x3'));var jsonpatch=require(_0xac5b('0x4'));var rp=require(_0xac5b('0x5'));var moment=require(_0xac5b('0x6'));var BPromise=require(_0xac5b('0x7'));var Mustache=require(_0xac5b('0x8'));var util=require(_0xac5b('0x9'));var path=require(_0xac5b('0xa'));var sox=require(_0xac5b('0xb'));var csv=require(_0xac5b('0xc'));var ejs=require(_0xac5b('0xd'));var fs=require('fs');var _=require(_0xac5b('0xe'));var squel=require(_0xac5b('0xf'));var crypto=require(_0xac5b('0x10'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xac5b('0xc'));var querystring=require('querystring');var Papa=require(_0xac5b('0x11'));var Redis=require(_0xac5b('0x12'));var authService=require(_0xac5b('0x13'));var qs=require(_0xac5b('0x14'));var as=require(_0xac5b('0x15'));var hardwareService=require(_0xac5b('0x16'));var logger=require(_0xac5b('0x17'))(_0xac5b('0x18'));var utils=require(_0xac5b('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0xac5b('0x1a'));var db=require(_0xac5b('0x1b'))['db'];var jayson=require(_0xac5b('0x1c'));var client=jayson[_0xac5b('0x1d')][_0xac5b('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x2deb15,_0xa754ff,_0x35eef0,_0x1566a1){return new BPromise(function(_0x58dc98,_0x45372c){var _0xab11ec=_0x1566a1||client;return _0xab11ec['request'](_0x2deb15,_0x35eef0)[_0xac5b('0x1f')](function(_0xe88a79){logger[_0xac5b('0x20')](_0xac5b('0x21'),_0xa754ff,_0xac5b('0x22'));logger[_0xac5b('0x23')](_0xac5b('0x24'),_0xa754ff,_0xac5b('0x22'),JSON[_0xac5b('0x25')](_0xe88a79));if(_0xe88a79[_0xac5b('0x26')]){if(_0xe88a79[_0xac5b('0x26')]['code']===0x1f4){logger[_0xac5b('0x26')]('VoiceContext,\x20%s,\x20%s',_0xa754ff,_0xe88a79[_0xac5b('0x26')]['message']);return _0x45372c(_0xe88a79[_0xac5b('0x26')][_0xac5b('0x27')]);}logger['error']('VoiceContext,\x20%s,\x20%s',_0xa754ff,_0xe88a79['error'][_0xac5b('0x27')]);return _0x58dc98(_0xe88a79['error'][_0xac5b('0x27')]);}else{logger[_0xac5b('0x20')](_0xac5b('0x21'),_0xa754ff,_0xac5b('0x22'));_0x58dc98(_0xe88a79[_0xac5b('0x28')]['message']);}})['catch'](function(_0x5bc6e7){logger[_0xac5b('0x26')]('VoiceContext,\x20%s,\x20%s',_0xa754ff,_0x5bc6e7);_0x45372c(_0x5bc6e7);});});}function respondWithStatusCode(_0x1e3d41,_0x32d186){_0x32d186=_0x32d186||0xcc;return function(_0x5a8a5a){if(_0x5a8a5a){return _0x1e3d41[_0xac5b('0x29')](_0x32d186);}return _0x1e3d41[_0xac5b('0x2a')](_0x32d186)[_0xac5b('0x2b')]();};}function respondWithResult(_0x44209e,_0x3c3b08){_0x3c3b08=_0x3c3b08||0xc8;return function(_0x40e99f){if(_0x40e99f){return _0x44209e[_0xac5b('0x2a')](_0x3c3b08)[_0xac5b('0x2c')](_0x40e99f);}};}function respondWithFilteredResult(_0x220cbd,_0x16a03a){return function(_0x578d11){if(_0x578d11){var _0x2b6211=_0x578d11[_0xac5b('0x2d')],_0xa48194=_0x16a03a[_0xac5b('0x2e')],_0x351d33=_0x16a03a[_0xac5b('0x2e')]+_0x16a03a[_0xac5b('0x2f')],_0x4191a7;if(_0x351d33>=_0x2b6211){_0x351d33=_0x2b6211;_0x4191a7=0xc8;}else{_0x4191a7=0xce;}_0x220cbd[_0xac5b('0x2a')](_0x4191a7);return _0x220cbd[_0xac5b('0x30')](_0xac5b('0x31'),_0xa48194+'-'+_0x351d33+'/'+_0x2b6211)['json'](_0x578d11);}return null;};}function patchUpdates(_0x27891e){return function(_0x367ba9){try{jsonpatch[_0xac5b('0x32')](_0x367ba9,_0x27891e,!![]);}catch(_0x59c870){return BPromise[_0xac5b('0x33')](_0x59c870);}return _0x367ba9['save']();};}function saveUpdates(_0x3b4a99,_0x3c5e8b){return function(_0x2559f8){if(_0x2559f8){return _0x2559f8[_0xac5b('0x34')](_0x3b4a99)['then'](function(_0x1e046a){return _0x1e046a;});}return null;};}function removeEntity(_0x5e8627,_0x486245){return function(_0x23d51d){if(_0x23d51d){return _0x23d51d[_0xac5b('0x35')]()['then'](function(){var _0x529ec5=_0x23d51d[_0xac5b('0x36')]({'plain':!![]});var _0x17577f='Contexts';return db[_0xac5b('0x37')][_0xac5b('0x35')]({'where':{'type':_0x17577f,'resourceId':_0x529ec5['id']}})[_0xac5b('0x1f')](function(){return _0x23d51d;});})['then'](function(){_0x5e8627['status'](0xcc)[_0xac5b('0x2b')]();});}};}function handleEntityNotFound(_0x41bf26,_0x57a460){return function(_0x2f7e7f){if(!_0x2f7e7f){_0x41bf26[_0xac5b('0x29')](0x194);}return _0x2f7e7f;};}function handleError(_0x3f267b,_0x5f1c77){_0x5f1c77=_0x5f1c77||0x1f4;return function(_0x5b8cf6){logger[_0xac5b('0x26')](_0x5b8cf6[_0xac5b('0x38')]);if(_0x5b8cf6[_0xac5b('0x39')]){delete _0x5b8cf6[_0xac5b('0x39')];}_0x3f267b[_0xac5b('0x2a')](_0x5f1c77)['send'](_0x5b8cf6);};}exports[_0xac5b('0x3a')]=function(_0x5e5b1c,_0x2c53c1){var _0x5596cf={},_0x3b08aa={},_0x4337ac={'count':0x0,'rows':[]};var _0x33099a=_[_0xac5b('0x3b')](db[_0xac5b('0x3c')][_0xac5b('0x3d')],function(_0x5e39a1){return{'name':_0x5e39a1[_0xac5b('0x3e')],'type':_0x5e39a1[_0xac5b('0x3f')][_0xac5b('0x40')]};});_0x3b08aa[_0xac5b('0x41')]=_[_0xac5b('0x3b')](_0x33099a,_0xac5b('0x39'));_0x3b08aa[_0xac5b('0x42')]=_['keys'](_0x5e5b1c[_0xac5b('0x42')]);_0x3b08aa[_0xac5b('0x43')]=_[_0xac5b('0x44')](_0x3b08aa[_0xac5b('0x41')],_0x3b08aa[_0xac5b('0x42')]);_0x5596cf[_0xac5b('0x45')]=_['intersection'](_0x3b08aa[_0xac5b('0x41')],qs['fields'](_0x5e5b1c[_0xac5b('0x42')]['fields']));_0x5596cf[_0xac5b('0x45')]=_0x5596cf['attributes']['length']?_0x5596cf['attributes']:_0x3b08aa['model'];if(!_0x5e5b1c['query']['hasOwnProperty'](_0xac5b('0x46'))){_0x5596cf['limit']=qs[_0xac5b('0x2f')](_0x5e5b1c[_0xac5b('0x42')][_0xac5b('0x2f')]);_0x5596cf['offset']=qs['offset'](_0x5e5b1c[_0xac5b('0x42')]['offset']);}_0x5596cf[_0xac5b('0x47')]=qs[_0xac5b('0x48')](_0x5e5b1c[_0xac5b('0x42')][_0xac5b('0x48')]);_0x5596cf['where']=qs[_0xac5b('0x43')](_[_0xac5b('0x49')](_0x5e5b1c[_0xac5b('0x42')],_0x3b08aa['filters']),_0x33099a);if(_0x5e5b1c[_0xac5b('0x42')]['filter']){_0x5596cf[_0xac5b('0x4a')]=_[_0xac5b('0x4b')](_0x5596cf[_0xac5b('0x4a')],{'$or':_['map'](_0x33099a,function(_0x277bed){if(_0x277bed[_0xac5b('0x3f')]!==_0xac5b('0x4c')){var _0x46163a={};_0x46163a[_0x277bed[_0xac5b('0x39')]]={'$like':'%'+_0x5e5b1c[_0xac5b('0x42')][_0xac5b('0x4d')]+'%'};return _0x46163a;}})});}_0x5596cf=_[_0xac5b('0x4b')]({},_0x5596cf,_0x5e5b1c[_0xac5b('0x4e')]);var _0x5bf030={'where':_0x5596cf['where']};return db[_0xac5b('0x3c')]['count'](_0x5bf030)['then'](function(_0x50719d){_0x4337ac['count']=_0x50719d;if(_0x5e5b1c['query'][_0xac5b('0x4f')]){_0x5596cf[_0xac5b('0x50')]=[{'all':!![]}];}return db[_0xac5b('0x3c')][_0xac5b('0x51')](_0x5596cf);})[_0xac5b('0x1f')](function(_0x514ffa){_0x4337ac[_0xac5b('0x52')]=_0x514ffa;return _0x4337ac;})[_0xac5b('0x1f')](respondWithFilteredResult(_0x2c53c1,_0x5596cf))[_0xac5b('0x53')](handleError(_0x2c53c1,null));};exports[_0xac5b('0x54')]=function(_0x166bb1,_0x46836c){var _0x2e5fe8={'raw':![],'where':{'id':_0x166bb1[_0xac5b('0x55')]['id']}},_0x3934ff={};_0x3934ff['model']=_[_0xac5b('0x56')](db[_0xac5b('0x3c')][_0xac5b('0x3d')]);_0x3934ff[_0xac5b('0x42')]=_[_0xac5b('0x56')](_0x166bb1[_0xac5b('0x42')]);_0x3934ff[_0xac5b('0x43')]=_['intersection'](_0x3934ff[_0xac5b('0x41')],_0x3934ff[_0xac5b('0x42')]);_0x2e5fe8['attributes']=_['intersection'](_0x3934ff[_0xac5b('0x41')],qs[_0xac5b('0x57')](_0x166bb1[_0xac5b('0x42')][_0xac5b('0x57')]));_0x2e5fe8[_0xac5b('0x45')]=_0x2e5fe8[_0xac5b('0x45')][_0xac5b('0x58')]?_0x2e5fe8[_0xac5b('0x45')]:_0x3934ff[_0xac5b('0x41')];if(_0x166bb1[_0xac5b('0x42')][_0xac5b('0x4f')]){_0x2e5fe8[_0xac5b('0x50')]=[{'all':!![]}];}_0x2e5fe8=_[_0xac5b('0x4b')]({},_0x2e5fe8,_0x166bb1[_0xac5b('0x4e')]);return db[_0xac5b('0x3c')][_0xac5b('0x59')](_0x2e5fe8)[_0xac5b('0x1f')](handleEntityNotFound(_0x46836c,null))[_0xac5b('0x1f')](respondWithResult(_0x46836c,null))[_0xac5b('0x53')](handleError(_0x46836c,null));};exports[_0xac5b('0x5a')]=function(_0x31cfed,_0x1be6ff,_0x34983f){var _0x45af95;return db[_0xac5b('0x3c')]['create'](_0x31cfed[_0xac5b('0x5b')],{'raw':!![]})[_0xac5b('0x1f')](function(_0x204aa7){_0x45af95=_0x204aa7;return db[_0xac5b('0x3c')]['findAll']({'raw':!![]});})[_0xac5b('0x1f')](function(_0x43f804){var _0x43729e=fs[_0xac5b('0x5c')](path['join'](config[_0xac5b('0x5d')],_0xac5b('0x5e')),_0xac5b('0x5f'));var _0x2bff3f=ejs[_0xac5b('0x60')](_0x43729e,{'contexts':_0x43f804||[]});fs[_0xac5b('0x61')](_0xac5b('0x62'),_0x2bff3f);})['then'](function(){return respondWithRpcPromise(_0xac5b('0x63'),'create',{'module':_0xac5b('0x64')});})[_0xac5b('0x1f')](function(){var _0x13e377=_0x31cfed[_0xac5b('0x65')][_0xac5b('0x36')]({'plain':!![]});if(!_0x13e377)throw new Error(_0xac5b('0x66'));if(_0x13e377['role']===_0xac5b('0x65')){var _0x267db3=_0x45af95['get']({'plain':!![]});return db[_0xac5b('0x67')][_0xac5b('0x59')]({'where':{'name':'Contexts','userProfileId':_0x13e377[_0xac5b('0x68')]},'raw':!![]})['then'](function(_0x3be074){if(_0x3be074&&_0x3be074[_0xac5b('0x69')]===0x0){return db[_0xac5b('0x37')]['create']({'name':_0x267db3[_0xac5b('0x39')],'resourceId':_0x267db3['id'],'type':_0x3be074[_0xac5b('0x39')],'sectionId':_0x3be074['id']},{})[_0xac5b('0x1f')](function(){return _0x45af95;});}else{return _0x45af95;}})[_0xac5b('0x53')](function(_0x3e648f){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3e648f);throw _0x3e648f;});}return _0x45af95;})['then'](respondWithResult(_0x1be6ff,0xc9))[_0xac5b('0x53')](handleError(_0x1be6ff,null));};exports[_0xac5b('0x34')]=function(_0x2d14da,_0x5e17b8,_0x3ccea0){var _0x1fc9bc;return db[_0xac5b('0x3c')][_0xac5b('0x59')]({'where':{'id':_0x2d14da[_0xac5b('0x55')]['id']}})[_0xac5b('0x1f')](handleEntityNotFound(_0x5e17b8,null))['then'](saveUpdates(_0x2d14da['body'],null))['then'](function(_0x18792a){if(_0x18792a){_0x1fc9bc=_0x18792a;return db[_0xac5b('0x3c')][_0xac5b('0x51')]({'raw':!![]});}})[_0xac5b('0x1f')](function(_0x1bd3b3){var _0x4d2d4d=fs[_0xac5b('0x5c')](path[_0xac5b('0x6a')](config[_0xac5b('0x5d')],_0xac5b('0x5e')),'utf8');var _0x191964=ejs[_0xac5b('0x60')](_0x4d2d4d,{'contexts':_0x1bd3b3||[]});fs['writeFileSync'](_0xac5b('0x62'),_0x191964);})[_0xac5b('0x1f')](function(){return respondWithRpcPromise(_0xac5b('0x63'),'update',{'module':_0xac5b('0x64')});})['then'](function(){return _0x1fc9bc;})[_0xac5b('0x1f')](respondWithResult(_0x5e17b8,null))['catch'](handleError(_0x5e17b8,null));};exports[_0xac5b('0x35')]=function(_0x527b7f,_0x2ae223,_0x5bcc27){var _0x3945c2;return db[_0xac5b('0x3c')][_0xac5b('0x59')]({'where':{'id':_0x527b7f[_0xac5b('0x55')]['id']}})['then'](handleEntityNotFound(_0x2ae223,null))[_0xac5b('0x1f')](removeEntity(_0x2ae223,null))['then'](function(){return db['VoiceContext'][_0xac5b('0x51')]({'raw':!![]});})['then'](function(_0x4f9f15){var _0x2659f2=fs['readFileSync'](path[_0xac5b('0x6a')](config[_0xac5b('0x5d')],_0xac5b('0x5e')),_0xac5b('0x5f'));var _0x485528=ejs[_0xac5b('0x60')](_0x2659f2,{'contexts':_0x4f9f15});fs[_0xac5b('0x61')](_0xac5b('0x62'),_0x485528);return respondWithRpcPromise(_0xac5b('0x63'),_0xac5b('0x35'),{'module':_0xac5b('0x64')});})['catch'](handleError(_0x2ae223,null));};