Built motion from commit (unavailable).|2.5.31
[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 _0xe849=['info','result','catch','sendStatus','status','offset','limit','undefined','count','Content-Range','json','apply','reject','save','update','Contexts','UserProfileResource','destroy','end','stack','name','send','index','map','VoiceContext','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','find','create','body','readFileSync','join','root','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','server/files/templates/context.ejs','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','client','http','request','then','VoiceContext,\x20%s,\x20%s','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0xe849,0x11f));var _0x9e84=function(_0x8d5836,_0x410bb2){_0x8d5836=_0x8d5836-0x0;var _0x10bdfd=_0xe849[_0x8d5836];return _0x10bdfd;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x9e84('0x0'));var jsonpatch=require(_0x9e84('0x1'));var rp=require(_0x9e84('0x2'));var moment=require(_0x9e84('0x3'));var BPromise=require(_0x9e84('0x4'));var Mustache=require(_0x9e84('0x5'));var util=require(_0x9e84('0x6'));var path=require(_0x9e84('0x7'));var sox=require(_0x9e84('0x8'));var csv=require('to-csv');var ejs=require(_0x9e84('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x9e84('0xa'));var jsforce=require(_0x9e84('0xb'));var deskjs=require(_0x9e84('0xc'));var toCsv=require(_0x9e84('0xd'));var querystring=require(_0x9e84('0xe'));var Papa=require(_0x9e84('0xf'));var Redis=require(_0x9e84('0x10'));var authService=require(_0x9e84('0x11'));var qs=require(_0x9e84('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9e84('0x13'));var logger=require(_0x9e84('0x14'))(_0x9e84('0x15'));var utils=require(_0x9e84('0x16'));var config=require(_0x9e84('0x17'));var licenseUtil=require(_0x9e84('0x18'));var db=require('../../mysqldb')['db'];var jayson=require(_0x9e84('0x19'));var client=jayson[_0x9e84('0x1a')][_0x9e84('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x4666ba,_0x2e6f4e,_0x24a848,_0x43b083){return new BPromise(function(_0x24c157,_0x38c855){var _0x1f09bf=_0x43b083||client;return _0x1f09bf[_0x9e84('0x1c')](_0x4666ba,_0x24a848)[_0x9e84('0x1d')](function(_0x2b762c){logger['info'](_0x9e84('0x1e'),_0x2e6f4e,'request\x20sent');logger[_0x9e84('0x1f')](_0x9e84('0x20'),_0x2e6f4e,'request\x20sent',JSON[_0x9e84('0x21')](_0x2b762c));if(_0x2b762c[_0x9e84('0x22')]){if(_0x2b762c['error'][_0x9e84('0x23')]===0x1f4){logger[_0x9e84('0x22')]('VoiceContext,\x20%s,\x20%s',_0x2e6f4e,_0x2b762c[_0x9e84('0x22')]['message']);return _0x38c855(_0x2b762c[_0x9e84('0x22')][_0x9e84('0x24')]);}logger[_0x9e84('0x22')](_0x9e84('0x1e'),_0x2e6f4e,_0x2b762c['error']['message']);return _0x24c157(_0x2b762c[_0x9e84('0x22')][_0x9e84('0x24')]);}else{logger[_0x9e84('0x25')]('VoiceContext,\x20%s,\x20%s',_0x2e6f4e,'request\x20sent');_0x24c157(_0x2b762c[_0x9e84('0x26')]['message']);}})[_0x9e84('0x27')](function(_0x455d86){logger['error'](_0x9e84('0x1e'),_0x2e6f4e,_0x455d86);_0x38c855(_0x455d86);});});}function respondWithStatusCode(_0x5930c7,_0x158776){_0x158776=_0x158776||0xcc;return function(_0x44bcc1){if(_0x44bcc1){return _0x5930c7[_0x9e84('0x28')](_0x158776);}return _0x5930c7[_0x9e84('0x29')](_0x158776)['end']();};}function respondWithResult(_0x3c0b1d,_0x236189){_0x236189=_0x236189||0xc8;return function(_0x2bc56a){if(_0x2bc56a){return _0x3c0b1d['status'](_0x236189)['json'](_0x2bc56a);}};}function respondWithFilteredResult(_0x4e13ff,_0x53af45){return function(_0x33c631){if(_0x33c631){var _0x4e10d2=typeof _0x53af45[_0x9e84('0x2a')]==='undefined'&&typeof _0x53af45[_0x9e84('0x2b')]===_0x9e84('0x2c');var _0x344850=_0x33c631[_0x9e84('0x2d')];var _0x39d2a9=_0x4e10d2?0x0:_0x53af45[_0x9e84('0x2a')];var _0x1eaa4f=_0x4e10d2?_0x33c631[_0x9e84('0x2d')]:_0x53af45['offset']+_0x53af45[_0x9e84('0x2b')];var _0x41616f;if(_0x1eaa4f>=_0x344850){_0x1eaa4f=_0x344850;_0x41616f=0xc8;}else{_0x41616f=0xce;}_0x4e13ff['status'](_0x41616f);return _0x4e13ff['set'](_0x9e84('0x2e'),_0x39d2a9+'-'+_0x1eaa4f+'/'+_0x344850)[_0x9e84('0x2f')](_0x33c631);}return null;};}function patchUpdates(_0x1917a9){return function(_0x3f9d40){try{jsonpatch[_0x9e84('0x30')](_0x3f9d40,_0x1917a9,!![]);}catch(_0xff54bb){return BPromise[_0x9e84('0x31')](_0xff54bb);}return _0x3f9d40[_0x9e84('0x32')]();};}function saveUpdates(_0x412049,_0x243817){return function(_0x41eb93){if(_0x41eb93){return _0x41eb93[_0x9e84('0x33')](_0x412049)[_0x9e84('0x1d')](function(_0x4155c1){return _0x4155c1;});}return null;};}function removeEntity(_0x5c4380,_0x20ea22){return function(_0x465873){if(_0x465873){return _0x465873['destroy']()[_0x9e84('0x1d')](function(){var _0x5d8f7a=_0x465873['get']({'plain':!![]});var _0x2c05d7=_0x9e84('0x34');return db[_0x9e84('0x35')][_0x9e84('0x36')]({'where':{'type':_0x2c05d7,'resourceId':_0x5d8f7a['id']}})[_0x9e84('0x1d')](function(){return _0x465873;});})[_0x9e84('0x1d')](function(){_0x5c4380['status'](0xcc)[_0x9e84('0x37')]();});}};}function handleEntityNotFound(_0x40cca9,_0x4fd63a){return function(_0x4594a0){if(!_0x4594a0){_0x40cca9[_0x9e84('0x28')](0x194);}return _0x4594a0;};}function handleError(_0x3a25d0,_0x92a9af){_0x92a9af=_0x92a9af||0x1f4;return function(_0x420e9b){logger[_0x9e84('0x22')](_0x420e9b[_0x9e84('0x38')]);if(_0x420e9b[_0x9e84('0x39')]){delete _0x420e9b[_0x9e84('0x39')];}_0x3a25d0[_0x9e84('0x29')](_0x92a9af)[_0x9e84('0x3a')](_0x420e9b);};}exports[_0x9e84('0x3b')]=function(_0x1c2dde,_0x236984){var _0x4f09d4={},_0x5253f5={},_0x50bd8e={'count':0x0,'rows':[]};var _0x2ac1b2=_[_0x9e84('0x3c')](db[_0x9e84('0x3d')][_0x9e84('0x3e')],function(_0x3f933e){return{'name':_0x3f933e['fieldName'],'type':_0x3f933e['type'][_0x9e84('0x3f')]};});_0x5253f5[_0x9e84('0x40')]=_['map'](_0x2ac1b2,'name');_0x5253f5[_0x9e84('0x41')]=_[_0x9e84('0x42')](_0x1c2dde[_0x9e84('0x41')]);_0x5253f5[_0x9e84('0x43')]=_[_0x9e84('0x44')](_0x5253f5[_0x9e84('0x40')],_0x5253f5['query']);_0x4f09d4[_0x9e84('0x45')]=_['intersection'](_0x5253f5[_0x9e84('0x40')],qs[_0x9e84('0x46')](_0x1c2dde[_0x9e84('0x41')][_0x9e84('0x46')]));_0x4f09d4[_0x9e84('0x45')]=_0x4f09d4[_0x9e84('0x45')][_0x9e84('0x47')]?_0x4f09d4['attributes']:_0x5253f5[_0x9e84('0x40')];if(!_0x1c2dde[_0x9e84('0x41')][_0x9e84('0x48')](_0x9e84('0x49'))){_0x4f09d4[_0x9e84('0x2b')]=qs['limit'](_0x1c2dde['query'][_0x9e84('0x2b')]);_0x4f09d4[_0x9e84('0x2a')]=qs[_0x9e84('0x2a')](_0x1c2dde[_0x9e84('0x41')][_0x9e84('0x2a')]);}_0x4f09d4[_0x9e84('0x4a')]=qs[_0x9e84('0x4b')](_0x1c2dde[_0x9e84('0x41')]['sort']);_0x4f09d4[_0x9e84('0x4c')]=qs[_0x9e84('0x43')](_[_0x9e84('0x4d')](_0x1c2dde[_0x9e84('0x41')],_0x5253f5[_0x9e84('0x43')]),_0x2ac1b2);if(_0x1c2dde['query'][_0x9e84('0x4e')]){_0x4f09d4[_0x9e84('0x4c')]=_[_0x9e84('0x4f')](_0x4f09d4[_0x9e84('0x4c')],{'$or':_[_0x9e84('0x3c')](_0x2ac1b2,function(_0xbc8efc){if(_0xbc8efc[_0x9e84('0x50')]!==_0x9e84('0x51')){var _0x1877cd={};_0x1877cd[_0xbc8efc[_0x9e84('0x39')]]={'$like':'%'+_0x1c2dde['query']['filter']+'%'};return _0x1877cd;}})});}_0x4f09d4=_[_0x9e84('0x4f')]({},_0x4f09d4,_0x1c2dde[_0x9e84('0x52')]);var _0x448482={'where':_0x4f09d4[_0x9e84('0x4c')]};return db[_0x9e84('0x3d')][_0x9e84('0x2d')](_0x448482)[_0x9e84('0x1d')](function(_0x2a10b5){_0x50bd8e[_0x9e84('0x2d')]=_0x2a10b5;if(_0x1c2dde[_0x9e84('0x41')][_0x9e84('0x53')]){_0x4f09d4[_0x9e84('0x54')]=[{'all':!![]}];}return db[_0x9e84('0x3d')][_0x9e84('0x55')](_0x4f09d4);})[_0x9e84('0x1d')](function(_0x3eccd5){_0x50bd8e[_0x9e84('0x56')]=_0x3eccd5;return _0x50bd8e;})[_0x9e84('0x1d')](respondWithFilteredResult(_0x236984,_0x4f09d4))[_0x9e84('0x27')](handleError(_0x236984,null));};exports['show']=function(_0x7f060d,_0x3ab4b8){var _0x50eff6={'raw':![],'where':{'id':_0x7f060d['params']['id']}},_0x4ea42d={};_0x4ea42d['model']=_[_0x9e84('0x42')](db['VoiceContext']['rawAttributes']);_0x4ea42d[_0x9e84('0x41')]=_[_0x9e84('0x42')](_0x7f060d[_0x9e84('0x41')]);_0x4ea42d['filters']=_[_0x9e84('0x44')](_0x4ea42d[_0x9e84('0x40')],_0x4ea42d['query']);_0x50eff6[_0x9e84('0x45')]=_[_0x9e84('0x44')](_0x4ea42d[_0x9e84('0x40')],qs[_0x9e84('0x46')](_0x7f060d[_0x9e84('0x41')]['fields']));_0x50eff6[_0x9e84('0x45')]=_0x50eff6[_0x9e84('0x45')][_0x9e84('0x47')]?_0x50eff6[_0x9e84('0x45')]:_0x4ea42d[_0x9e84('0x40')];if(_0x7f060d['query'][_0x9e84('0x53')]){_0x50eff6[_0x9e84('0x54')]=[{'all':!![]}];}_0x50eff6=_[_0x9e84('0x4f')]({},_0x50eff6,_0x7f060d['options']);return db[_0x9e84('0x3d')][_0x9e84('0x57')](_0x50eff6)[_0x9e84('0x1d')](handleEntityNotFound(_0x3ab4b8,null))[_0x9e84('0x1d')](respondWithResult(_0x3ab4b8,null))[_0x9e84('0x27')](handleError(_0x3ab4b8,null));};exports[_0x9e84('0x58')]=function(_0x2548db,_0x433aa4,_0x40bc64){var _0x574b57;return db[_0x9e84('0x3d')][_0x9e84('0x58')](_0x2548db[_0x9e84('0x59')],{'raw':!![]})[_0x9e84('0x1d')](function(_0x27b7dc){_0x574b57=_0x27b7dc;return db[_0x9e84('0x3d')][_0x9e84('0x55')]({'raw':!![]});})['then'](function(_0x484a6a){var _0x24c5d3=fs[_0x9e84('0x5a')](path[_0x9e84('0x5b')](config[_0x9e84('0x5c')],'server/files/templates/context.ejs'),_0x9e84('0x5d'));var _0x1c19af=ejs[_0x9e84('0x5e')](_0x24c5d3,{'contexts':_0x484a6a||[]});fs[_0x9e84('0x5f')](_0x9e84('0x60'),_0x1c19af);})[_0x9e84('0x1d')](function(){return respondWithRpcPromise(_0x9e84('0x61'),_0x9e84('0x58'),{'module':_0x9e84('0x62')});})[_0x9e84('0x1d')](function(){var _0x2e77cf=_0x2548db[_0x9e84('0x63')][_0x9e84('0x64')]({'plain':!![]});if(!_0x2e77cf)throw new Error(_0x9e84('0x65'));if(_0x2e77cf['role']===_0x9e84('0x63')){var _0x5593c2=_0x574b57[_0x9e84('0x64')]({'plain':!![]});return db[_0x9e84('0x66')][_0x9e84('0x57')]({'where':{'name':_0x9e84('0x34'),'userProfileId':_0x2e77cf[_0x9e84('0x67')]},'raw':!![]})['then'](function(_0x23ca16){if(_0x23ca16&&_0x23ca16[_0x9e84('0x68')]===0x0){return db[_0x9e84('0x35')][_0x9e84('0x58')]({'name':_0x5593c2[_0x9e84('0x39')],'resourceId':_0x5593c2['id'],'type':_0x23ca16['name'],'sectionId':_0x23ca16['id']},{})[_0x9e84('0x1d')](function(){return _0x574b57;});}else{return _0x574b57;}})[_0x9e84('0x27')](function(_0x38414c){logger[_0x9e84('0x22')](_0x9e84('0x69'),_0x38414c);throw _0x38414c;});}return _0x574b57;})['then'](respondWithResult(_0x433aa4,0xc9))[_0x9e84('0x27')](handleError(_0x433aa4,null));};exports[_0x9e84('0x33')]=function(_0x11a88f,_0x4f8d9c,_0x3acaac){var _0x18d676;return db[_0x9e84('0x3d')][_0x9e84('0x57')]({'where':{'id':_0x11a88f[_0x9e84('0x6a')]['id']}})['then'](handleEntityNotFound(_0x4f8d9c,null))[_0x9e84('0x1d')](saveUpdates(_0x11a88f['body'],null))[_0x9e84('0x1d')](function(_0x2b7651){if(_0x2b7651){_0x18d676=_0x2b7651;return db[_0x9e84('0x3d')]['findAll']({'raw':!![]});}})[_0x9e84('0x1d')](function(_0x569036){var _0x57ad23=fs[_0x9e84('0x5a')](path[_0x9e84('0x5b')](config[_0x9e84('0x5c')],_0x9e84('0x6b')),_0x9e84('0x5d'));var _0x50ce33=ejs['render'](_0x57ad23,{'contexts':_0x569036||[]});fs[_0x9e84('0x5f')](_0x9e84('0x60'),_0x50ce33);})['then'](function(){return respondWithRpcPromise('Reload','update',{'module':'chan_sip.so'});})[_0x9e84('0x1d')](function(){return _0x18d676;})[_0x9e84('0x1d')](respondWithResult(_0x4f8d9c,null))[_0x9e84('0x27')](handleError(_0x4f8d9c,null));};exports[_0x9e84('0x36')]=function(_0x79af9e,_0x212c61,_0x328cd2){var _0x248e6d;return db['VoiceContext'][_0x9e84('0x57')]({'where':{'id':_0x79af9e['params']['id']}})[_0x9e84('0x1d')](handleEntityNotFound(_0x212c61,null))[_0x9e84('0x1d')](removeEntity(_0x212c61,null))['then'](function(){return db[_0x9e84('0x3d')]['findAll']({'raw':!![]});})[_0x9e84('0x1d')](function(_0xf1f2dd){var _0x11d195=fs[_0x9e84('0x5a')](path[_0x9e84('0x5b')](config[_0x9e84('0x5c')],_0x9e84('0x6b')),_0x9e84('0x5d'));var _0x37cbb5=ejs['render'](_0x11d195,{'contexts':_0xf1f2dd});fs['writeFileSync'](_0x9e84('0x60'),_0x37cbb5);return respondWithRpcPromise(_0x9e84('0x61'),_0x9e84('0x36'),{'module':_0x9e84('0x62')});})[_0x9e84('0x27')](handleError(_0x212c61,null));};