3f2d11b37ba3a8febe4ababa8129a2530c704faf
[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 _0x4fef=['info','result','sendStatus','status','end','json','count','limit','Content-Range','reject','save','update','destroy','get','UserProfileResource','stack','name','send','index','map','VoiceContext','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','offset','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','params','rawAttributes','create','body','findAll','readFileSync','join','server/files/templates/context.ejs','utf8','render','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','root','html-pdf','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','client','http','then','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message'];(function(_0x5c5887,_0x204cb8){var _0x2ba623=function(_0x4e9f79){while(--_0x4e9f79){_0x5c5887['push'](_0x5c5887['shift']());}};_0x2ba623(++_0x204cb8);}(_0x4fef,0x10f));var _0xf4fe=function(_0x40b471,_0x10ce39){_0x40b471=_0x40b471-0x0;var _0x1d6e29=_0x4fef[_0x40b471];return _0x1d6e29;};'use strict';var pdf=require(_0xf4fe('0x0'));var emlformat=require(_0xf4fe('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xf4fe('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf4fe('0x3'));var moment=require(_0xf4fe('0x4'));var BPromise=require(_0xf4fe('0x5'));var Mustache=require(_0xf4fe('0x6'));var util=require(_0xf4fe('0x7'));var path=require(_0xf4fe('0x8'));var sox=require(_0xf4fe('0x9'));var csv=require(_0xf4fe('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xf4fe('0xb'));var squel=require(_0xf4fe('0xc'));var crypto=require('crypto');var jsforce=require(_0xf4fe('0xd'));var deskjs=require(_0xf4fe('0xe'));var toCsv=require(_0xf4fe('0xa'));var querystring=require(_0xf4fe('0xf'));var Papa=require(_0xf4fe('0x10'));var Redis=require(_0xf4fe('0x11'));var authService=require(_0xf4fe('0x12'));var qs=require(_0xf4fe('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf4fe('0x14'));var logger=require('../../config/logger')(_0xf4fe('0x15'));var utils=require(_0xf4fe('0x16'));var config=require(_0xf4fe('0x17'));var licenseUtil=require(_0xf4fe('0x18'));var db=require(_0xf4fe('0x19'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xf4fe('0x1a')][_0xf4fe('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x1d1faa,_0x578a99,_0x158f17,_0x4824f5){return new BPromise(function(_0x3ce3f1,_0x457a14){var _0x316685=_0x4824f5||client;return _0x316685['request'](_0x1d1faa,_0x158f17)[_0xf4fe('0x1c')](function(_0x3442f1){logger['info'](_0xf4fe('0x1d'),_0x578a99,_0xf4fe('0x1e'));logger[_0xf4fe('0x1f')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x578a99,'request\x20sent',JSON[_0xf4fe('0x20')](_0x3442f1));if(_0x3442f1[_0xf4fe('0x21')]){if(_0x3442f1['error']['code']===0x1f4){logger[_0xf4fe('0x21')](_0xf4fe('0x1d'),_0x578a99,_0x3442f1[_0xf4fe('0x21')][_0xf4fe('0x22')]);return _0x457a14(_0x3442f1[_0xf4fe('0x21')][_0xf4fe('0x22')]);}logger[_0xf4fe('0x21')](_0xf4fe('0x1d'),_0x578a99,_0x3442f1[_0xf4fe('0x21')][_0xf4fe('0x22')]);return _0x3ce3f1(_0x3442f1[_0xf4fe('0x21')][_0xf4fe('0x22')]);}else{logger[_0xf4fe('0x23')](_0xf4fe('0x1d'),_0x578a99,'request\x20sent');_0x3ce3f1(_0x3442f1[_0xf4fe('0x24')]['message']);}})['catch'](function(_0x536de8){logger[_0xf4fe('0x21')]('VoiceContext,\x20%s,\x20%s',_0x578a99,_0x536de8);_0x457a14(_0x536de8);});});}function respondWithStatusCode(_0x5eb921,_0xd3bfb3){_0xd3bfb3=_0xd3bfb3||0xcc;return function(_0x1ba32a){if(_0x1ba32a){return _0x5eb921[_0xf4fe('0x25')](_0xd3bfb3);}return _0x5eb921[_0xf4fe('0x26')](_0xd3bfb3)[_0xf4fe('0x27')]();};}function respondWithResult(_0xf9e5d6,_0x51dc14){_0x51dc14=_0x51dc14||0xc8;return function(_0x1f4013){if(_0x1f4013){return _0xf9e5d6[_0xf4fe('0x26')](_0x51dc14)[_0xf4fe('0x28')](_0x1f4013);}};}function respondWithFilteredResult(_0xd9b8b4,_0x4141ec){return function(_0x477de5){if(_0x477de5){var _0xa38aa1=_0x477de5[_0xf4fe('0x29')],_0x5790f9=_0x4141ec['offset'],_0x35ae34=_0x4141ec['offset']+_0x4141ec[_0xf4fe('0x2a')],_0x112b80;if(_0x35ae34>=_0xa38aa1){_0x35ae34=_0xa38aa1;_0x112b80=0xc8;}else{_0x112b80=0xce;}_0xd9b8b4['status'](_0x112b80);return _0xd9b8b4['set'](_0xf4fe('0x2b'),_0x5790f9+'-'+_0x35ae34+'/'+_0xa38aa1)[_0xf4fe('0x28')](_0x477de5);}return null;};}function patchUpdates(_0x461367){return function(_0x1ffadb){try{jsonpatch['apply'](_0x1ffadb,_0x461367,!![]);}catch(_0x50a6a3){return BPromise[_0xf4fe('0x2c')](_0x50a6a3);}return _0x1ffadb[_0xf4fe('0x2d')]();};}function saveUpdates(_0x5990de,_0x89403c){return function(_0x3c2380){if(_0x3c2380){return _0x3c2380[_0xf4fe('0x2e')](_0x5990de)[_0xf4fe('0x1c')](function(_0x171f83){return _0x171f83;});}return null;};}function removeEntity(_0x3a0109,_0x16d3f7){return function(_0x638217){if(_0x638217){return _0x638217[_0xf4fe('0x2f')]()[_0xf4fe('0x1c')](function(){var _0x843dc8=_0x638217[_0xf4fe('0x30')]({'plain':!![]});var _0x4d7535='Contexts';return db[_0xf4fe('0x31')][_0xf4fe('0x2f')]({'where':{'type':_0x4d7535,'resourceId':_0x843dc8['id']}})['then'](function(){return _0x638217;});})[_0xf4fe('0x1c')](function(){_0x3a0109[_0xf4fe('0x26')](0xcc)['end']();});}};}function handleEntityNotFound(_0x229773,_0x1cfa98){return function(_0x45bc82){if(!_0x45bc82){_0x229773[_0xf4fe('0x25')](0x194);}return _0x45bc82;};}function handleError(_0x1270de,_0xbb3186){_0xbb3186=_0xbb3186||0x1f4;return function(_0x52139e){logger[_0xf4fe('0x21')](_0x52139e[_0xf4fe('0x32')]);if(_0x52139e['name']){delete _0x52139e[_0xf4fe('0x33')];}_0x1270de[_0xf4fe('0x26')](_0xbb3186)[_0xf4fe('0x34')](_0x52139e);};}exports[_0xf4fe('0x35')]=function(_0x1741e6,_0x5cc938){var _0x572a19={},_0x40d1b3={},_0x66db2d={'count':0x0,'rows':[]};var _0x50d0e9=_[_0xf4fe('0x36')](db[_0xf4fe('0x37')]['rawAttributes'],function(_0x24345b){return{'name':_0x24345b['fieldName'],'type':_0x24345b['type'][_0xf4fe('0x38')]};});_0x40d1b3[_0xf4fe('0x39')]=_[_0xf4fe('0x36')](_0x50d0e9,'name');_0x40d1b3[_0xf4fe('0x3a')]=_[_0xf4fe('0x3b')](_0x1741e6[_0xf4fe('0x3a')]);_0x40d1b3[_0xf4fe('0x3c')]=_[_0xf4fe('0x3d')](_0x40d1b3['model'],_0x40d1b3[_0xf4fe('0x3a')]);_0x572a19['attributes']=_['intersection'](_0x40d1b3[_0xf4fe('0x39')],qs[_0xf4fe('0x3e')](_0x1741e6[_0xf4fe('0x3a')][_0xf4fe('0x3e')]));_0x572a19['attributes']=_0x572a19[_0xf4fe('0x3f')][_0xf4fe('0x40')]?_0x572a19['attributes']:_0x40d1b3[_0xf4fe('0x39')];if(!_0x1741e6[_0xf4fe('0x3a')][_0xf4fe('0x41')](_0xf4fe('0x42'))){_0x572a19['limit']=qs[_0xf4fe('0x2a')](_0x1741e6[_0xf4fe('0x3a')][_0xf4fe('0x2a')]);_0x572a19['offset']=qs[_0xf4fe('0x43')](_0x1741e6[_0xf4fe('0x3a')][_0xf4fe('0x43')]);}_0x572a19[_0xf4fe('0x44')]=qs['sort'](_0x1741e6[_0xf4fe('0x3a')][_0xf4fe('0x45')]);_0x572a19[_0xf4fe('0x46')]=qs[_0xf4fe('0x3c')](_[_0xf4fe('0x47')](_0x1741e6['query'],_0x40d1b3[_0xf4fe('0x3c')]),_0x50d0e9);if(_0x1741e6[_0xf4fe('0x3a')][_0xf4fe('0x48')]){_0x572a19[_0xf4fe('0x46')]=_[_0xf4fe('0x49')](_0x572a19[_0xf4fe('0x46')],{'$or':_[_0xf4fe('0x36')](_0x50d0e9,function(_0x1649f2){if(_0x1649f2['type']!==_0xf4fe('0x4a')){var _0x4bd0e2={};_0x4bd0e2[_0x1649f2[_0xf4fe('0x33')]]={'$like':'%'+_0x1741e6[_0xf4fe('0x3a')][_0xf4fe('0x48')]+'%'};return _0x4bd0e2;}})});}_0x572a19=_['merge']({},_0x572a19,_0x1741e6[_0xf4fe('0x4b')]);var _0xaf567c={'where':_0x572a19[_0xf4fe('0x46')]};return db[_0xf4fe('0x37')]['count'](_0xaf567c)[_0xf4fe('0x1c')](function(_0x4b3184){_0x66db2d[_0xf4fe('0x29')]=_0x4b3184;if(_0x1741e6[_0xf4fe('0x3a')][_0xf4fe('0x4c')]){_0x572a19[_0xf4fe('0x4d')]=[{'all':!![]}];}return db[_0xf4fe('0x37')]['findAll'](_0x572a19);})[_0xf4fe('0x1c')](function(_0x584886){_0x66db2d[_0xf4fe('0x4e')]=_0x584886;return _0x66db2d;})[_0xf4fe('0x1c')](respondWithFilteredResult(_0x5cc938,_0x572a19))[_0xf4fe('0x4f')](handleError(_0x5cc938,null));};exports['show']=function(_0x59de95,_0x59dcdf){var _0x31c30c={'raw':![],'where':{'id':_0x59de95[_0xf4fe('0x50')]['id']}},_0x33f85b={};_0x33f85b[_0xf4fe('0x39')]=_[_0xf4fe('0x3b')](db[_0xf4fe('0x37')][_0xf4fe('0x51')]);_0x33f85b['query']=_[_0xf4fe('0x3b')](_0x59de95[_0xf4fe('0x3a')]);_0x33f85b[_0xf4fe('0x3c')]=_['intersection'](_0x33f85b[_0xf4fe('0x39')],_0x33f85b[_0xf4fe('0x3a')]);_0x31c30c['attributes']=_[_0xf4fe('0x3d')](_0x33f85b[_0xf4fe('0x39')],qs[_0xf4fe('0x3e')](_0x59de95['query']['fields']));_0x31c30c[_0xf4fe('0x3f')]=_0x31c30c[_0xf4fe('0x3f')][_0xf4fe('0x40')]?_0x31c30c[_0xf4fe('0x3f')]:_0x33f85b['model'];if(_0x59de95[_0xf4fe('0x3a')][_0xf4fe('0x4c')]){_0x31c30c[_0xf4fe('0x4d')]=[{'all':!![]}];}_0x31c30c=_[_0xf4fe('0x49')]({},_0x31c30c,_0x59de95[_0xf4fe('0x4b')]);return db[_0xf4fe('0x37')]['find'](_0x31c30c)[_0xf4fe('0x1c')](handleEntityNotFound(_0x59dcdf,null))[_0xf4fe('0x1c')](respondWithResult(_0x59dcdf,null))['catch'](handleError(_0x59dcdf,null));};exports[_0xf4fe('0x52')]=function(_0x24014f,_0x3d10e1,_0x1b8867){var _0x5e3c0d;return db['VoiceContext']['create'](_0x24014f[_0xf4fe('0x53')],{'raw':!![]})[_0xf4fe('0x1c')](function(_0x5a0b82){_0x5e3c0d=_0x5a0b82;return db[_0xf4fe('0x37')][_0xf4fe('0x54')]({'raw':!![]});})[_0xf4fe('0x1c')](function(_0x3747ca){var _0x3538e9=fs[_0xf4fe('0x55')](path[_0xf4fe('0x56')](config['root'],_0xf4fe('0x57')),_0xf4fe('0x58'));var _0x575966=ejs[_0xf4fe('0x59')](_0x3538e9,{'contexts':_0x3747ca||[]});fs['writeFileSync'](_0xf4fe('0x5a'),_0x575966);})['then'](function(){return respondWithRpcPromise(_0xf4fe('0x5b'),_0xf4fe('0x52'),{'module':_0xf4fe('0x5c')});})[_0xf4fe('0x1c')](function(){var _0x28e559=_0x24014f[_0xf4fe('0x5d')][_0xf4fe('0x30')]({'plain':!![]});if(!_0x28e559)throw new Error(_0xf4fe('0x5e'));if(_0x28e559[_0xf4fe('0x5f')]==='user'){var _0x5e6c0b=_0x5e3c0d[_0xf4fe('0x30')]({'plain':!![]});return db[_0xf4fe('0x60')][_0xf4fe('0x61')]({'where':{'name':'Contexts','userProfileId':_0x28e559[_0xf4fe('0x62')]},'raw':!![]})[_0xf4fe('0x1c')](function(_0x2b7ff1){if(_0x2b7ff1&&_0x2b7ff1[_0xf4fe('0x63')]===0x0){return db['UserProfileResource'][_0xf4fe('0x52')]({'name':_0x5e6c0b[_0xf4fe('0x33')],'resourceId':_0x5e6c0b['id'],'type':_0x2b7ff1[_0xf4fe('0x33')],'sectionId':_0x2b7ff1['id']},{})['then'](function(){return _0x5e3c0d;});}else{return _0x5e3c0d;}})['catch'](function(_0x1c3b42){logger[_0xf4fe('0x21')](_0xf4fe('0x64'),_0x1c3b42);throw _0x1c3b42;});}return _0x5e3c0d;})['then'](respondWithResult(_0x3d10e1,0xc9))['catch'](handleError(_0x3d10e1,null));};exports[_0xf4fe('0x2e')]=function(_0x15d68a,_0xd3fe2c,_0x1c7124){var _0x1bedaa;return db[_0xf4fe('0x37')][_0xf4fe('0x61')]({'where':{'id':_0x15d68a[_0xf4fe('0x50')]['id']}})['then'](handleEntityNotFound(_0xd3fe2c,null))[_0xf4fe('0x1c')](saveUpdates(_0x15d68a[_0xf4fe('0x53')],null))['then'](function(_0x48435d){if(_0x48435d){_0x1bedaa=_0x48435d;return db[_0xf4fe('0x37')][_0xf4fe('0x54')]({'raw':!![]});}})[_0xf4fe('0x1c')](function(_0x3efa3a){var _0x5af151=fs[_0xf4fe('0x55')](path['join'](config[_0xf4fe('0x65')],_0xf4fe('0x57')),_0xf4fe('0x58'));var _0x4b0f3d=ejs['render'](_0x5af151,{'contexts':_0x3efa3a||[]});fs['writeFileSync'](_0xf4fe('0x5a'),_0x4b0f3d);})[_0xf4fe('0x1c')](function(){return respondWithRpcPromise(_0xf4fe('0x5b'),'update',{'module':_0xf4fe('0x5c')});})[_0xf4fe('0x1c')](function(){return _0x1bedaa;})[_0xf4fe('0x1c')](respondWithResult(_0xd3fe2c,null))[_0xf4fe('0x4f')](handleError(_0xd3fe2c,null));};exports[_0xf4fe('0x2f')]=function(_0x2bcb3f,_0x5e5b59,_0x3430c3){var _0x3cc6cf;return db['VoiceContext']['find']({'where':{'id':_0x2bcb3f['params']['id']}})[_0xf4fe('0x1c')](handleEntityNotFound(_0x5e5b59,null))[_0xf4fe('0x1c')](removeEntity(_0x5e5b59,null))[_0xf4fe('0x1c')](function(){return db[_0xf4fe('0x37')][_0xf4fe('0x54')]({'raw':!![]});})[_0xf4fe('0x1c')](function(_0xa6d2cd){var _0x4fc967=fs[_0xf4fe('0x55')](path[_0xf4fe('0x56')](config[_0xf4fe('0x65')],_0xf4fe('0x57')),_0xf4fe('0x58'));var _0xed4eb1=ejs[_0xf4fe('0x59')](_0x4fc967,{'contexts':_0xa6d2cd});fs['writeFileSync'](_0xf4fe('0x5a'),_0xed4eb1);return respondWithRpcPromise('Reload',_0xf4fe('0x2f'),{'module':'chan_sip.so'});})[_0xf4fe('0x4f')](handleError(_0x5e5b59,null));};