Built motion from commit (unavailable).|2.5.14
[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 _0xab5b=['message','result','catch','sendStatus','status','end','json','count','offset','Content-Range','apply','reject','save','destroy','get','Contexts','UserProfileResource','stack','name','send','index','map','VoiceContext','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','rows','show','params','keys','options','find','create','body','findAll','readFileSync','join','root','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','server/files/templates/context.ejs','Reload','chan_sip.so','html-pdf','eml-format','zip-dir','fast-json-patch','bluebird','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','stringify','error'];(function(_0x4016e1,_0x1bf0da){var _0x2160fc=function(_0xf3a508){while(--_0xf3a508){_0x4016e1['push'](_0x4016e1['shift']());}};_0x2160fc(++_0x1bf0da);}(_0xab5b,0x11a));var _0xbab5=function(_0xd7f84d,_0xfc8e88){_0xd7f84d=_0xd7f84d-0x0;var _0x4748d2=_0xab5b[_0xd7f84d];return _0x4748d2;};'use strict';var pdf=require(_0xbab5('0x0'));var emlformat=require(_0xbab5('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xbab5('0x2'));var jsonpatch=require(_0xbab5('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xbab5('0x4'));var Mustache=require('mustache');var util=require(_0xbab5('0x5'));var path=require(_0xbab5('0x6'));var sox=require(_0xbab5('0x7'));var csv=require(_0xbab5('0x8'));var ejs=require(_0xbab5('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0xbab5('0xa'));var crypto=require(_0xbab5('0xb'));var jsforce=require(_0xbab5('0xc'));var deskjs=require(_0xbab5('0xd'));var toCsv=require(_0xbab5('0x8'));var querystring=require('querystring');var Papa=require(_0xbab5('0xe'));var Redis=require(_0xbab5('0xf'));var authService=require(_0xbab5('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xbab5('0x11'));var hardwareService=require(_0xbab5('0x12'));var logger=require('../../config/logger')(_0xbab5('0x13'));var utils=require(_0xbab5('0x14'));var config=require(_0xbab5('0x15'));var licenseUtil=require(_0xbab5('0x16'));var db=require('../../mysqldb')['db'];var jayson=require(_0xbab5('0x17'));var client=jayson['client'][_0xbab5('0x18')]({'port':0x232a});function respondWithRpcPromise(_0xee0909,_0x122c12,_0x2bae54,_0x40c9e1){return new BPromise(function(_0x51acbc,_0x360b72){var _0x31ed39=_0x40c9e1||client;return _0x31ed39[_0xbab5('0x19')](_0xee0909,_0x2bae54)[_0xbab5('0x1a')](function(_0x21b818){logger[_0xbab5('0x1b')](_0xbab5('0x1c'),_0x122c12,_0xbab5('0x1d'));logger[_0xbab5('0x1e')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x122c12,_0xbab5('0x1d'),JSON[_0xbab5('0x1f')](_0x21b818));if(_0x21b818[_0xbab5('0x20')]){if(_0x21b818['error']['code']===0x1f4){logger[_0xbab5('0x20')](_0xbab5('0x1c'),_0x122c12,_0x21b818[_0xbab5('0x20')][_0xbab5('0x21')]);return _0x360b72(_0x21b818[_0xbab5('0x20')][_0xbab5('0x21')]);}logger[_0xbab5('0x20')]('VoiceContext,\x20%s,\x20%s',_0x122c12,_0x21b818[_0xbab5('0x20')][_0xbab5('0x21')]);return _0x51acbc(_0x21b818[_0xbab5('0x20')]['message']);}else{logger[_0xbab5('0x1b')](_0xbab5('0x1c'),_0x122c12,_0xbab5('0x1d'));_0x51acbc(_0x21b818[_0xbab5('0x22')][_0xbab5('0x21')]);}})[_0xbab5('0x23')](function(_0x28d7db){logger[_0xbab5('0x20')](_0xbab5('0x1c'),_0x122c12,_0x28d7db);_0x360b72(_0x28d7db);});});}function respondWithStatusCode(_0x32e69d,_0x27e76f){_0x27e76f=_0x27e76f||0xcc;return function(_0x58ba05){if(_0x58ba05){return _0x32e69d[_0xbab5('0x24')](_0x27e76f);}return _0x32e69d[_0xbab5('0x25')](_0x27e76f)[_0xbab5('0x26')]();};}function respondWithResult(_0x14e649,_0x229d82){_0x229d82=_0x229d82||0xc8;return function(_0x4bbb3e){if(_0x4bbb3e){return _0x14e649[_0xbab5('0x25')](_0x229d82)[_0xbab5('0x27')](_0x4bbb3e);}};}function respondWithFilteredResult(_0x24578d,_0x546ae0){return function(_0x29be55){if(_0x29be55){var _0x25ab3e=_0x29be55[_0xbab5('0x28')],_0x168d75=_0x546ae0[_0xbab5('0x29')],_0xaac42=_0x546ae0[_0xbab5('0x29')]+_0x546ae0['limit'],_0x194e60;if(_0xaac42>=_0x25ab3e){_0xaac42=_0x25ab3e;_0x194e60=0xc8;}else{_0x194e60=0xce;}_0x24578d[_0xbab5('0x25')](_0x194e60);return _0x24578d['set'](_0xbab5('0x2a'),_0x168d75+'-'+_0xaac42+'/'+_0x25ab3e)[_0xbab5('0x27')](_0x29be55);}return null;};}function patchUpdates(_0x4a23cb){return function(_0x2008e5){try{jsonpatch[_0xbab5('0x2b')](_0x2008e5,_0x4a23cb,!![]);}catch(_0x3a6a98){return BPromise[_0xbab5('0x2c')](_0x3a6a98);}return _0x2008e5[_0xbab5('0x2d')]();};}function saveUpdates(_0x1f5311,_0x19fdfe){return function(_0x501caf){if(_0x501caf){return _0x501caf['update'](_0x1f5311)[_0xbab5('0x1a')](function(_0x5ac156){return _0x5ac156;});}return null;};}function removeEntity(_0x122296,_0x45c5bd){return function(_0x586e60){if(_0x586e60){return _0x586e60[_0xbab5('0x2e')]()[_0xbab5('0x1a')](function(){var _0x32924b=_0x586e60[_0xbab5('0x2f')]({'plain':!![]});var _0x3a8962=_0xbab5('0x30');return db[_0xbab5('0x31')]['destroy']({'where':{'type':_0x3a8962,'resourceId':_0x32924b['id']}})[_0xbab5('0x1a')](function(){return _0x586e60;});})[_0xbab5('0x1a')](function(){_0x122296[_0xbab5('0x25')](0xcc)[_0xbab5('0x26')]();});}};}function handleEntityNotFound(_0x341901,_0x1dc644){return function(_0x2a4793){if(!_0x2a4793){_0x341901['sendStatus'](0x194);}return _0x2a4793;};}function handleError(_0x367443,_0x336bff){_0x336bff=_0x336bff||0x1f4;return function(_0x2e053d){logger['error'](_0x2e053d[_0xbab5('0x32')]);if(_0x2e053d[_0xbab5('0x33')]){delete _0x2e053d['name'];}_0x367443[_0xbab5('0x25')](_0x336bff)[_0xbab5('0x34')](_0x2e053d);};}exports[_0xbab5('0x35')]=function(_0x30d11a,_0x1d6a5a){var _0x3a8ea5={},_0x2977cc={},_0x5b7bc3={'count':0x0,'rows':[]};var _0x8d877c=_[_0xbab5('0x36')](db[_0xbab5('0x37')][_0xbab5('0x38')],function(_0x16218e){return{'name':_0x16218e[_0xbab5('0x39')],'type':_0x16218e[_0xbab5('0x3a')][_0xbab5('0x3b')]};});_0x2977cc['model']=_[_0xbab5('0x36')](_0x8d877c,'name');_0x2977cc[_0xbab5('0x3c')]=_['keys'](_0x30d11a['query']);_0x2977cc[_0xbab5('0x3d')]=_[_0xbab5('0x3e')](_0x2977cc[_0xbab5('0x3f')],_0x2977cc['query']);_0x3a8ea5[_0xbab5('0x40')]=_['intersection'](_0x2977cc[_0xbab5('0x3f')],qs[_0xbab5('0x41')](_0x30d11a[_0xbab5('0x3c')]['fields']));_0x3a8ea5[_0xbab5('0x40')]=_0x3a8ea5['attributes'][_0xbab5('0x42')]?_0x3a8ea5[_0xbab5('0x40')]:_0x2977cc[_0xbab5('0x3f')];if(!_0x30d11a[_0xbab5('0x3c')]['hasOwnProperty'](_0xbab5('0x43'))){_0x3a8ea5[_0xbab5('0x44')]=qs['limit'](_0x30d11a[_0xbab5('0x3c')][_0xbab5('0x44')]);_0x3a8ea5[_0xbab5('0x29')]=qs[_0xbab5('0x29')](_0x30d11a[_0xbab5('0x3c')][_0xbab5('0x29')]);}_0x3a8ea5[_0xbab5('0x45')]=qs[_0xbab5('0x46')](_0x30d11a[_0xbab5('0x3c')]['sort']);_0x3a8ea5[_0xbab5('0x47')]=qs[_0xbab5('0x3d')](_[_0xbab5('0x48')](_0x30d11a[_0xbab5('0x3c')],_0x2977cc[_0xbab5('0x3d')]),_0x8d877c);if(_0x30d11a[_0xbab5('0x3c')][_0xbab5('0x49')]){_0x3a8ea5[_0xbab5('0x47')]=_[_0xbab5('0x4a')](_0x3a8ea5[_0xbab5('0x47')],{'$or':_['map'](_0x8d877c,function(_0x1fee68){if(_0x1fee68['type']!==_0xbab5('0x4b')){var _0x4a9b5b={};_0x4a9b5b[_0x1fee68[_0xbab5('0x33')]]={'$like':'%'+_0x30d11a[_0xbab5('0x3c')][_0xbab5('0x49')]+'%'};return _0x4a9b5b;}})});}_0x3a8ea5=_[_0xbab5('0x4a')]({},_0x3a8ea5,_0x30d11a['options']);var _0x5e67aa={'where':_0x3a8ea5[_0xbab5('0x47')]};return db[_0xbab5('0x37')][_0xbab5('0x28')](_0x5e67aa)[_0xbab5('0x1a')](function(_0x126455){_0x5b7bc3[_0xbab5('0x28')]=_0x126455;if(_0x30d11a['query'][_0xbab5('0x4c')]){_0x3a8ea5[_0xbab5('0x4d')]=[{'all':!![]}];}return db[_0xbab5('0x37')]['findAll'](_0x3a8ea5);})[_0xbab5('0x1a')](function(_0x351b9d){_0x5b7bc3[_0xbab5('0x4e')]=_0x351b9d;return _0x5b7bc3;})[_0xbab5('0x1a')](respondWithFilteredResult(_0x1d6a5a,_0x3a8ea5))[_0xbab5('0x23')](handleError(_0x1d6a5a,null));};exports[_0xbab5('0x4f')]=function(_0x114458,_0xd5209d){var _0x3b1713={'raw':![],'where':{'id':_0x114458[_0xbab5('0x50')]['id']}},_0x525e7b={};_0x525e7b['model']=_[_0xbab5('0x51')](db[_0xbab5('0x37')][_0xbab5('0x38')]);_0x525e7b[_0xbab5('0x3c')]=_[_0xbab5('0x51')](_0x114458[_0xbab5('0x3c')]);_0x525e7b[_0xbab5('0x3d')]=_['intersection'](_0x525e7b[_0xbab5('0x3f')],_0x525e7b['query']);_0x3b1713[_0xbab5('0x40')]=_[_0xbab5('0x3e')](_0x525e7b['model'],qs[_0xbab5('0x41')](_0x114458[_0xbab5('0x3c')]['fields']));_0x3b1713[_0xbab5('0x40')]=_0x3b1713[_0xbab5('0x40')][_0xbab5('0x42')]?_0x3b1713[_0xbab5('0x40')]:_0x525e7b[_0xbab5('0x3f')];if(_0x114458['query']['includeAll']){_0x3b1713[_0xbab5('0x4d')]=[{'all':!![]}];}_0x3b1713=_[_0xbab5('0x4a')]({},_0x3b1713,_0x114458[_0xbab5('0x52')]);return db['VoiceContext'][_0xbab5('0x53')](_0x3b1713)[_0xbab5('0x1a')](handleEntityNotFound(_0xd5209d,null))[_0xbab5('0x1a')](respondWithResult(_0xd5209d,null))[_0xbab5('0x23')](handleError(_0xd5209d,null));};exports['create']=function(_0x2ebb69,_0xea128d,_0x2f48f2){var _0x26cc76;return db[_0xbab5('0x37')][_0xbab5('0x54')](_0x2ebb69[_0xbab5('0x55')],{'raw':!![]})[_0xbab5('0x1a')](function(_0x490595){_0x26cc76=_0x490595;return db[_0xbab5('0x37')][_0xbab5('0x56')]({'raw':!![]});})['then'](function(_0x379972){var _0x14d5ec=fs[_0xbab5('0x57')](path[_0xbab5('0x58')](config[_0xbab5('0x59')],'server/files/templates/context.ejs'),_0xbab5('0x5a'));var _0x190571=ejs[_0xbab5('0x5b')](_0x14d5ec,{'contexts':_0x379972||[]});fs[_0xbab5('0x5c')](_0xbab5('0x5d'),_0x190571);})[_0xbab5('0x1a')](function(){return respondWithRpcPromise('Reload',_0xbab5('0x54'),{'module':'chan_sip.so'});})['then'](function(){var _0x29dfcc=_0x2ebb69[_0xbab5('0x5e')]['get']({'plain':!![]});if(!_0x29dfcc)throw new Error(_0xbab5('0x5f'));if(_0x29dfcc[_0xbab5('0x60')]==='user'){var _0x429412=_0x26cc76['get']({'plain':!![]});return db[_0xbab5('0x61')][_0xbab5('0x53')]({'where':{'name':'Contexts','userProfileId':_0x29dfcc[_0xbab5('0x62')]},'raw':!![]})[_0xbab5('0x1a')](function(_0x2aa8a6){if(_0x2aa8a6&&_0x2aa8a6[_0xbab5('0x63')]===0x0){return db['UserProfileResource']['create']({'name':_0x429412[_0xbab5('0x33')],'resourceId':_0x429412['id'],'type':_0x2aa8a6['name'],'sectionId':_0x2aa8a6['id']},{})[_0xbab5('0x1a')](function(){return _0x26cc76;});}else{return _0x26cc76;}})[_0xbab5('0x23')](function(_0x1f1823){logger[_0xbab5('0x20')](_0xbab5('0x64'),_0x1f1823);throw _0x1f1823;});}return _0x26cc76;})[_0xbab5('0x1a')](respondWithResult(_0xea128d,0xc9))[_0xbab5('0x23')](handleError(_0xea128d,null));};exports[_0xbab5('0x65')]=function(_0x3823fa,_0x3f6782,_0x54d1ce){var _0x14e23d;return db['VoiceContext']['find']({'where':{'id':_0x3823fa[_0xbab5('0x50')]['id']}})[_0xbab5('0x1a')](handleEntityNotFound(_0x3f6782,null))['then'](saveUpdates(_0x3823fa[_0xbab5('0x55')],null))[_0xbab5('0x1a')](function(_0x4cc4e1){if(_0x4cc4e1){_0x14e23d=_0x4cc4e1;return db[_0xbab5('0x37')][_0xbab5('0x56')]({'raw':!![]});}})[_0xbab5('0x1a')](function(_0x3ed08e){var _0x30668f=fs[_0xbab5('0x57')](path['join'](config['root'],_0xbab5('0x66')),'utf8');var _0x2a80df=ejs[_0xbab5('0x5b')](_0x30668f,{'contexts':_0x3ed08e||[]});fs[_0xbab5('0x5c')](_0xbab5('0x5d'),_0x2a80df);})[_0xbab5('0x1a')](function(){return respondWithRpcPromise(_0xbab5('0x67'),_0xbab5('0x65'),{'module':'chan_sip.so'});})[_0xbab5('0x1a')](function(){return _0x14e23d;})['then'](respondWithResult(_0x3f6782,null))[_0xbab5('0x23')](handleError(_0x3f6782,null));};exports[_0xbab5('0x2e')]=function(_0x25263b,_0x46fadb,_0xd3ddf1){var _0x1692be;return db[_0xbab5('0x37')][_0xbab5('0x53')]({'where':{'id':_0x25263b[_0xbab5('0x50')]['id']}})['then'](handleEntityNotFound(_0x46fadb,null))[_0xbab5('0x1a')](removeEntity(_0x46fadb,null))[_0xbab5('0x1a')](function(){return db[_0xbab5('0x37')][_0xbab5('0x56')]({'raw':!![]});})[_0xbab5('0x1a')](function(_0x15594d){var _0x3a374c=fs[_0xbab5('0x57')](path['join'](config[_0xbab5('0x59')],'server/files/templates/context.ejs'),'utf8');var _0x37df34=ejs[_0xbab5('0x5b')](_0x3a374c,{'contexts':_0x15594d});fs[_0xbab5('0x5c')](_0xbab5('0x5d'),_0x37df34);return respondWithRpcPromise(_0xbab5('0x67'),_0xbab5('0x2e'),{'module':_0xbab5('0x68')});})[_0xbab5('0x23')](handleError(_0x46fadb,null));};