36902d3a606d17eadb5228bac43ba1a98add8977
[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 _0xfb12=['merge','where','VIRTUAL','filter','options','includeAll','include','findAll','rows','show','params','length','create','body','join','root','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','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','writeFileSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','ejs','fs-extra','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','http','request','then','VoiceContext,\x20%s,\x20%s','debug','stringify','error','code','message','info','request\x20sent','result','catch','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','get','Contexts','destroy','sendStatus','stack','name','send','map','VoiceContext','rawAttributes','type','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','sort','filters'];(function(_0x4529a6,_0xcf5c91){var _0x1f63df=function(_0x710e0c){while(--_0x710e0c){_0x4529a6['push'](_0x4529a6['shift']());}};_0x1f63df(++_0xcf5c91);}(_0xfb12,0xf1));var _0x2fb1=function(_0x55ee39,_0x4ee949){_0x55ee39=_0x55ee39-0x0;var _0x51ec97=_0xfb12[_0x55ee39];return _0x51ec97;};'use strict';var emlformat=require(_0x2fb1('0x0'));var rimraf=require(_0x2fb1('0x1'));var zipdir=require(_0x2fb1('0x2'));var jsonpatch=require(_0x2fb1('0x3'));var rp=require(_0x2fb1('0x4'));var moment=require(_0x2fb1('0x5'));var BPromise=require(_0x2fb1('0x6'));var Mustache=require('mustache');var util=require(_0x2fb1('0x7'));var path=require('path');var sox=require(_0x2fb1('0x8'));var csv=require('to-csv');var ejs=require(_0x2fb1('0x9'));var fs=require('fs');var fs_extra=require(_0x2fb1('0xa'));var _=require('lodash');var squel=require(_0x2fb1('0xb'));var crypto=require('crypto');var jsforce=require(_0x2fb1('0xc'));var deskjs=require(_0x2fb1('0xd'));var toCsv=require(_0x2fb1('0xe'));var querystring=require(_0x2fb1('0xf'));var Papa=require(_0x2fb1('0x10'));var Redis=require('ioredis');var authService=require(_0x2fb1('0x11'));var qs=require(_0x2fb1('0x12'));var as=require(_0x2fb1('0x13'));var hardwareService=require(_0x2fb1('0x14'));var logger=require(_0x2fb1('0x15'))(_0x2fb1('0x16'));var utils=require(_0x2fb1('0x17'));var config=require(_0x2fb1('0x18'));var licenseUtil=require(_0x2fb1('0x19'));var db=require(_0x2fb1('0x1a'))['db'];var jayson=require('jayson/promise');var client=jayson['client'][_0x2fb1('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x37f1b1,_0x231e0b,_0x2471db,_0x1df6c0){return new BPromise(function(_0x5947c7,_0xad6630){var _0x1142e7=_0x1df6c0||client;return _0x1142e7[_0x2fb1('0x1c')](_0x37f1b1,_0x2471db)[_0x2fb1('0x1d')](function(_0x3c5edd){logger['info'](_0x2fb1('0x1e'),_0x231e0b,'request\x20sent');logger[_0x2fb1('0x1f')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x231e0b,'request\x20sent',JSON[_0x2fb1('0x20')](_0x3c5edd));if(_0x3c5edd[_0x2fb1('0x21')]){if(_0x3c5edd['error'][_0x2fb1('0x22')]===0x1f4){logger['error'](_0x2fb1('0x1e'),_0x231e0b,_0x3c5edd[_0x2fb1('0x21')]['message']);return _0xad6630(_0x3c5edd[_0x2fb1('0x21')][_0x2fb1('0x23')]);}logger[_0x2fb1('0x21')](_0x2fb1('0x1e'),_0x231e0b,_0x3c5edd[_0x2fb1('0x21')]['message']);return _0x5947c7(_0x3c5edd['error'][_0x2fb1('0x23')]);}else{logger[_0x2fb1('0x24')](_0x2fb1('0x1e'),_0x231e0b,_0x2fb1('0x25'));_0x5947c7(_0x3c5edd[_0x2fb1('0x26')][_0x2fb1('0x23')]);}})[_0x2fb1('0x27')](function(_0x1fca27){logger[_0x2fb1('0x21')]('VoiceContext,\x20%s,\x20%s',_0x231e0b,_0x1fca27);_0xad6630(_0x1fca27);});});}function respondWithStatusCode(_0x1aebea,_0x480799){_0x480799=_0x480799||0xcc;return function(_0x2d953e){if(_0x2d953e){return _0x1aebea['sendStatus'](_0x480799);}return _0x1aebea['status'](_0x480799)[_0x2fb1('0x28')]();};}function respondWithResult(_0x3038c7,_0x196420){_0x196420=_0x196420||0xc8;return function(_0x4a386b){if(_0x4a386b){return _0x3038c7[_0x2fb1('0x29')](_0x196420)[_0x2fb1('0x2a')](_0x4a386b);}};}function respondWithFilteredResult(_0x59cc5a,_0x2faf1e){return function(_0x5cf4b4){if(_0x5cf4b4){var _0x49d694=typeof _0x2faf1e[_0x2fb1('0x2b')]===_0x2fb1('0x2c')&&typeof _0x2faf1e[_0x2fb1('0x2d')]===_0x2fb1('0x2c');var _0x6cbdb5=_0x5cf4b4[_0x2fb1('0x2e')];var _0x29ea32=_0x49d694?0x0:_0x2faf1e['offset'];var _0x3e87dd=_0x49d694?_0x5cf4b4[_0x2fb1('0x2e')]:_0x2faf1e[_0x2fb1('0x2b')]+_0x2faf1e[_0x2fb1('0x2d')];var _0x254c3a;if(_0x3e87dd>=_0x6cbdb5){_0x3e87dd=_0x6cbdb5;_0x254c3a=0xc8;}else{_0x254c3a=0xce;}_0x59cc5a[_0x2fb1('0x29')](_0x254c3a);return _0x59cc5a['set'](_0x2fb1('0x2f'),_0x29ea32+'-'+_0x3e87dd+'/'+_0x6cbdb5)[_0x2fb1('0x2a')](_0x5cf4b4);}return null;};}function patchUpdates(_0x1ae889){return function(_0x4e4c08){try{jsonpatch[_0x2fb1('0x30')](_0x4e4c08,_0x1ae889,!![]);}catch(_0x118454){return BPromise[_0x2fb1('0x31')](_0x118454);}return _0x4e4c08[_0x2fb1('0x32')]();};}function saveUpdates(_0x13fe55,_0x4d36f7){return function(_0x262925){if(_0x262925){return _0x262925[_0x2fb1('0x33')](_0x13fe55)['then'](function(_0x5903d0){return _0x5903d0;});}return null;};}function removeEntity(_0x1f0dc8,_0x58bfee){return function(_0xf419de){if(_0xf419de){return _0xf419de['destroy']()[_0x2fb1('0x1d')](function(){var _0x471b9d=_0xf419de[_0x2fb1('0x34')]({'plain':!![]});var _0x570d07=_0x2fb1('0x35');return db['UserProfileResource'][_0x2fb1('0x36')]({'where':{'type':_0x570d07,'resourceId':_0x471b9d['id']}})[_0x2fb1('0x1d')](function(){return _0xf419de;});})[_0x2fb1('0x1d')](function(){_0x1f0dc8[_0x2fb1('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3a1b33,_0x35f8f0){return function(_0x46de5f){if(!_0x46de5f){_0x3a1b33[_0x2fb1('0x37')](0x194);}return _0x46de5f;};}function handleError(_0x6544ed,_0x263791){_0x263791=_0x263791||0x1f4;return function(_0x4550ab){logger[_0x2fb1('0x21')](_0x4550ab[_0x2fb1('0x38')]);if(_0x4550ab[_0x2fb1('0x39')]){delete _0x4550ab[_0x2fb1('0x39')];}_0x6544ed[_0x2fb1('0x29')](_0x263791)[_0x2fb1('0x3a')](_0x4550ab);};}exports['index']=function(_0x3a9637,_0x203b05){var _0x31f7b9={},_0x48a924={},_0x7928b0={'count':0x0,'rows':[]};var _0x4855d2=_[_0x2fb1('0x3b')](db[_0x2fb1('0x3c')][_0x2fb1('0x3d')],function(_0x5a5a97){return{'name':_0x5a5a97['fieldName'],'type':_0x5a5a97[_0x2fb1('0x3e')][_0x2fb1('0x3f')]};});_0x48a924[_0x2fb1('0x40')]=_[_0x2fb1('0x3b')](_0x4855d2,_0x2fb1('0x39'));_0x48a924[_0x2fb1('0x41')]=_[_0x2fb1('0x42')](_0x3a9637[_0x2fb1('0x41')]);_0x48a924['filters']=_[_0x2fb1('0x43')](_0x48a924[_0x2fb1('0x40')],_0x48a924[_0x2fb1('0x41')]);_0x31f7b9['attributes']=_[_0x2fb1('0x43')](_0x48a924[_0x2fb1('0x40')],qs[_0x2fb1('0x44')](_0x3a9637[_0x2fb1('0x41')]['fields']));_0x31f7b9['attributes']=_0x31f7b9[_0x2fb1('0x45')]['length']?_0x31f7b9[_0x2fb1('0x45')]:_0x48a924['model'];if(!_0x3a9637[_0x2fb1('0x41')][_0x2fb1('0x46')](_0x2fb1('0x47'))){_0x31f7b9['limit']=qs[_0x2fb1('0x2d')](_0x3a9637['query']['limit']);_0x31f7b9[_0x2fb1('0x2b')]=qs[_0x2fb1('0x2b')](_0x3a9637[_0x2fb1('0x41')]['offset']);}_0x31f7b9['order']=qs[_0x2fb1('0x48')](_0x3a9637[_0x2fb1('0x41')]['sort']);_0x31f7b9['where']=qs[_0x2fb1('0x49')](_['pick'](_0x3a9637[_0x2fb1('0x41')],_0x48a924[_0x2fb1('0x49')]),_0x4855d2);if(_0x3a9637[_0x2fb1('0x41')]['filter']){_0x31f7b9['where']=_[_0x2fb1('0x4a')](_0x31f7b9[_0x2fb1('0x4b')],{'$or':_[_0x2fb1('0x3b')](_0x4855d2,function(_0xd21cd1){if(_0xd21cd1[_0x2fb1('0x3e')]!==_0x2fb1('0x4c')){var _0x1cf59d={};_0x1cf59d[_0xd21cd1[_0x2fb1('0x39')]]={'$like':'%'+_0x3a9637['query'][_0x2fb1('0x4d')]+'%'};return _0x1cf59d;}})});}_0x31f7b9=_['merge']({},_0x31f7b9,_0x3a9637[_0x2fb1('0x4e')]);var _0x4e61ec={'where':_0x31f7b9[_0x2fb1('0x4b')]};return db['VoiceContext'][_0x2fb1('0x2e')](_0x4e61ec)['then'](function(_0x1c2c2f){_0x7928b0[_0x2fb1('0x2e')]=_0x1c2c2f;if(_0x3a9637[_0x2fb1('0x41')][_0x2fb1('0x4f')]){_0x31f7b9[_0x2fb1('0x50')]=[{'all':!![]}];}return db['VoiceContext'][_0x2fb1('0x51')](_0x31f7b9);})[_0x2fb1('0x1d')](function(_0x3c4430){_0x7928b0[_0x2fb1('0x52')]=_0x3c4430;return _0x7928b0;})[_0x2fb1('0x1d')](respondWithFilteredResult(_0x203b05,_0x31f7b9))[_0x2fb1('0x27')](handleError(_0x203b05,null));};exports[_0x2fb1('0x53')]=function(_0x112e9b,_0x49c6f6){var _0x172494={'raw':![],'where':{'id':_0x112e9b[_0x2fb1('0x54')]['id']}},_0x4027bd={};_0x4027bd[_0x2fb1('0x40')]=_['keys'](db['VoiceContext'][_0x2fb1('0x3d')]);_0x4027bd[_0x2fb1('0x41')]=_[_0x2fb1('0x42')](_0x112e9b[_0x2fb1('0x41')]);_0x4027bd[_0x2fb1('0x49')]=_[_0x2fb1('0x43')](_0x4027bd[_0x2fb1('0x40')],_0x4027bd[_0x2fb1('0x41')]);_0x172494[_0x2fb1('0x45')]=_[_0x2fb1('0x43')](_0x4027bd['model'],qs[_0x2fb1('0x44')](_0x112e9b['query'][_0x2fb1('0x44')]));_0x172494[_0x2fb1('0x45')]=_0x172494[_0x2fb1('0x45')][_0x2fb1('0x55')]?_0x172494[_0x2fb1('0x45')]:_0x4027bd['model'];if(_0x112e9b[_0x2fb1('0x41')]['includeAll']){_0x172494[_0x2fb1('0x50')]=[{'all':!![]}];}_0x172494=_[_0x2fb1('0x4a')]({},_0x172494,_0x112e9b[_0x2fb1('0x4e')]);return db[_0x2fb1('0x3c')]['find'](_0x172494)[_0x2fb1('0x1d')](handleEntityNotFound(_0x49c6f6,null))[_0x2fb1('0x1d')](respondWithResult(_0x49c6f6,null))['catch'](handleError(_0x49c6f6,null));};exports[_0x2fb1('0x56')]=function(_0x1ba7f8,_0x4a73d5,_0x3a757a){var _0x44b29b;return db[_0x2fb1('0x3c')]['create'](_0x1ba7f8[_0x2fb1('0x57')],{'raw':!![]})[_0x2fb1('0x1d')](function(_0x47a22b){_0x44b29b=_0x47a22b;return db['VoiceContext'][_0x2fb1('0x51')]({'raw':!![]});})[_0x2fb1('0x1d')](function(_0x142263){var _0x28dde9=fs['readFileSync'](path[_0x2fb1('0x58')](config[_0x2fb1('0x59')],_0x2fb1('0x5a')),_0x2fb1('0x5b'));var _0x1024fb=ejs[_0x2fb1('0x5c')](_0x28dde9,{'contexts':_0x142263||[]});fs['writeFileSync'](_0x2fb1('0x5d'),_0x1024fb);})[_0x2fb1('0x1d')](function(){return respondWithRpcPromise(_0x2fb1('0x5e'),'create',{'module':_0x2fb1('0x5f')});})[_0x2fb1('0x1d')](function(){var _0x271c64=_0x1ba7f8[_0x2fb1('0x60')][_0x2fb1('0x34')]({'plain':!![]});if(!_0x271c64)throw new Error(_0x2fb1('0x61'));if(_0x271c64[_0x2fb1('0x62')]==='user'){var _0x508e16=_0x44b29b[_0x2fb1('0x34')]({'plain':!![]});return db[_0x2fb1('0x63')][_0x2fb1('0x64')]({'where':{'name':'Contexts','userProfileId':_0x271c64['userProfileId']},'raw':!![]})[_0x2fb1('0x1d')](function(_0x3fa8de){if(_0x3fa8de&&_0x3fa8de[_0x2fb1('0x65')]===0x0){return db['UserProfileResource']['create']({'name':_0x508e16[_0x2fb1('0x39')],'resourceId':_0x508e16['id'],'type':_0x3fa8de[_0x2fb1('0x39')],'sectionId':_0x3fa8de['id']},{})[_0x2fb1('0x1d')](function(){return _0x44b29b;});}else{return _0x44b29b;}})['catch'](function(_0x4dda8c){logger[_0x2fb1('0x21')](_0x2fb1('0x66'),_0x4dda8c);throw _0x4dda8c;});}return _0x44b29b;})['then'](respondWithResult(_0x4a73d5,0xc9))['catch'](handleError(_0x4a73d5,null));};exports['update']=function(_0xd2806c,_0x4c40a9,_0x6e3ac8){var _0x1dce89;return db[_0x2fb1('0x3c')][_0x2fb1('0x64')]({'where':{'id':_0xd2806c[_0x2fb1('0x54')]['id']}})[_0x2fb1('0x1d')](handleEntityNotFound(_0x4c40a9,null))['then'](saveUpdates(_0xd2806c[_0x2fb1('0x57')],null))[_0x2fb1('0x1d')](function(_0x45a72b){if(_0x45a72b){_0x1dce89=_0x45a72b;return db[_0x2fb1('0x3c')]['findAll']({'raw':!![]});}})[_0x2fb1('0x1d')](function(_0x56f7c7){var _0x41fb9e=fs[_0x2fb1('0x67')](path[_0x2fb1('0x58')](config['root'],_0x2fb1('0x5a')),_0x2fb1('0x5b'));var _0x4d6855=ejs[_0x2fb1('0x5c')](_0x41fb9e,{'contexts':_0x56f7c7||[]});fs['writeFileSync'](_0x2fb1('0x5d'),_0x4d6855);})['then'](function(){return respondWithRpcPromise(_0x2fb1('0x5e'),_0x2fb1('0x33'),{'module':_0x2fb1('0x5f')});})['then'](function(){return _0x1dce89;})[_0x2fb1('0x1d')](respondWithResult(_0x4c40a9,null))['catch'](handleError(_0x4c40a9,null));};exports['destroy']=function(_0x3a24b0,_0x925220,_0x2e0238){var _0xf4a1e3;return db['VoiceContext'][_0x2fb1('0x64')]({'where':{'id':_0x3a24b0['params']['id']}})[_0x2fb1('0x1d')](handleEntityNotFound(_0x925220,null))[_0x2fb1('0x1d')](removeEntity(_0x925220,null))['then'](function(){return db[_0x2fb1('0x3c')][_0x2fb1('0x51')]({'raw':!![]});})[_0x2fb1('0x1d')](function(_0x5fc6c){var _0x349568=fs[_0x2fb1('0x67')](path[_0x2fb1('0x58')](config[_0x2fb1('0x59')],_0x2fb1('0x5a')),_0x2fb1('0x5b'));var _0x20086b=ejs['render'](_0x349568,{'contexts':_0x5fc6c});fs[_0x2fb1('0x68')](_0x2fb1('0x5d'),_0x20086b);return respondWithRpcPromise(_0x2fb1('0x5e'),_0x2fb1('0x36'),{'module':_0x2fb1('0x5f')});})[_0x2fb1('0x27')](handleError(_0x925220,null));};