Built motion from commit eddce310.|2.6.12
[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 _0xc46e=['where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','keys','create','body','readFileSync','join','root','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','role','UserProfileSection','autoAssociation','find','server/files/templates/context.ejs','utf8','update','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','code','message','result','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','get','Contexts','destroy','stack','name','map','VoiceContext','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','nolimit','sort'];(function(_0x40f74e,_0x42d884){var _0x6cb5ff=function(_0x23695a){while(--_0x23695a){_0x40f74e['push'](_0x40f74e['shift']());}};_0x6cb5ff(++_0x42d884);}(_0xc46e,0x154));var _0xec46=function(_0x82129b,_0x484ae9){_0x82129b=_0x82129b-0x0;var _0x2ae5dc=_0xc46e[_0x82129b];return _0x2ae5dc;};'use strict';var emlformat=require(_0xec46('0x0'));var rimraf=require(_0xec46('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xec46('0x2'));var rp=require(_0xec46('0x3'));var moment=require(_0xec46('0x4'));var BPromise=require(_0xec46('0x5'));var Mustache=require(_0xec46('0x6'));var util=require(_0xec46('0x7'));var path=require(_0xec46('0x8'));var sox=require('sox');var csv=require(_0xec46('0x9'));var ejs=require(_0xec46('0xa'));var fs=require('fs');var fs_extra=require(_0xec46('0xb'));var _=require(_0xec46('0xc'));var squel=require(_0xec46('0xd'));var crypto=require(_0xec46('0xe'));var jsforce=require(_0xec46('0xf'));var deskjs=require(_0xec46('0x10'));var toCsv=require(_0xec46('0x9'));var querystring=require('querystring');var Papa=require(_0xec46('0x11'));var Redis=require(_0xec46('0x12'));var authService=require(_0xec46('0x13'));var qs=require(_0xec46('0x14'));var as=require(_0xec46('0x15'));var hardwareService=require(_0xec46('0x16'));var logger=require(_0xec46('0x17'))(_0xec46('0x18'));var utils=require(_0xec46('0x19'));var config=require(_0xec46('0x1a'));var licenseUtil=require(_0xec46('0x1b'));var db=require(_0xec46('0x1c'))['db'];var jayson=require(_0xec46('0x1d'));var client=jayson['client'][_0xec46('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x1435bd,_0x273bde,_0x58c4f9,_0x3e047b){return new BPromise(function(_0x2673fc,_0x5cadd0){var _0x50fbcd=_0x3e047b||client;return _0x50fbcd[_0xec46('0x1f')](_0x1435bd,_0x58c4f9)[_0xec46('0x20')](function(_0x55ded0){logger[_0xec46('0x21')](_0xec46('0x22'),_0x273bde,_0xec46('0x23'));logger[_0xec46('0x24')](_0xec46('0x25'),_0x273bde,_0xec46('0x23'),JSON['stringify'](_0x55ded0));if(_0x55ded0[_0xec46('0x26')]){if(_0x55ded0[_0xec46('0x26')][_0xec46('0x27')]===0x1f4){logger[_0xec46('0x26')](_0xec46('0x22'),_0x273bde,_0x55ded0[_0xec46('0x26')][_0xec46('0x28')]);return _0x5cadd0(_0x55ded0['error'][_0xec46('0x28')]);}logger['error']('VoiceContext,\x20%s,\x20%s',_0x273bde,_0x55ded0[_0xec46('0x26')]['message']);return _0x2673fc(_0x55ded0[_0xec46('0x26')][_0xec46('0x28')]);}else{logger['info'](_0xec46('0x22'),_0x273bde,_0xec46('0x23'));_0x2673fc(_0x55ded0[_0xec46('0x29')][_0xec46('0x28')]);}})['catch'](function(_0x52f0c7){logger[_0xec46('0x26')](_0xec46('0x22'),_0x273bde,_0x52f0c7);_0x5cadd0(_0x52f0c7);});});}function respondWithStatusCode(_0x2906d0,_0x41495b){_0x41495b=_0x41495b||0xcc;return function(_0x20a257){if(_0x20a257){return _0x2906d0[_0xec46('0x2a')](_0x41495b);}return _0x2906d0[_0xec46('0x2b')](_0x41495b)[_0xec46('0x2c')]();};}function respondWithResult(_0x57552b,_0x415100){_0x415100=_0x415100||0xc8;return function(_0x56cb0f){if(_0x56cb0f){return _0x57552b[_0xec46('0x2b')](_0x415100)[_0xec46('0x2d')](_0x56cb0f);}};}function respondWithFilteredResult(_0x533070,_0x77292b){return function(_0x36a54d){if(_0x36a54d){var _0x21a79e=typeof _0x77292b[_0xec46('0x2e')]==='undefined'&&typeof _0x77292b[_0xec46('0x2f')]==='undefined';var _0x5aa487=_0x36a54d[_0xec46('0x30')];var _0x58317b=_0x21a79e?0x0:_0x77292b[_0xec46('0x2e')];var _0x4f6a57=_0x21a79e?_0x36a54d[_0xec46('0x30')]:_0x77292b[_0xec46('0x2e')]+_0x77292b['limit'];var _0x5ed3e2;if(_0x4f6a57>=_0x5aa487){_0x4f6a57=_0x5aa487;_0x5ed3e2=0xc8;}else{_0x5ed3e2=0xce;}_0x533070[_0xec46('0x2b')](_0x5ed3e2);return _0x533070[_0xec46('0x31')](_0xec46('0x32'),_0x58317b+'-'+_0x4f6a57+'/'+_0x5aa487)['json'](_0x36a54d);}return null;};}function patchUpdates(_0x518f99){return function(_0x2bedff){try{jsonpatch[_0xec46('0x33')](_0x2bedff,_0x518f99,!![]);}catch(_0x56bfee){return BPromise[_0xec46('0x34')](_0x56bfee);}return _0x2bedff['save']();};}function saveUpdates(_0x47ddcf,_0x27fe6f){return function(_0x49997f){if(_0x49997f){return _0x49997f['update'](_0x47ddcf)[_0xec46('0x20')](function(_0xb93852){return _0xb93852;});}return null;};}function removeEntity(_0x36ebe8,_0x1ee5cf){return function(_0x184537){if(_0x184537){return _0x184537['destroy']()[_0xec46('0x20')](function(){var _0x4d0d4=_0x184537[_0xec46('0x35')]({'plain':!![]});var _0x28b94b=_0xec46('0x36');return db['UserProfileResource'][_0xec46('0x37')]({'where':{'type':_0x28b94b,'resourceId':_0x4d0d4['id']}})[_0xec46('0x20')](function(){return _0x184537;});})[_0xec46('0x20')](function(){_0x36ebe8['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x814014,_0x139ea7){return function(_0xf4e54d){if(!_0xf4e54d){_0x814014[_0xec46('0x2a')](0x194);}return _0xf4e54d;};}function handleError(_0x374123,_0x56e906){_0x56e906=_0x56e906||0x1f4;return function(_0x1d00d){logger['error'](_0x1d00d[_0xec46('0x38')]);if(_0x1d00d[_0xec46('0x39')]){delete _0x1d00d[_0xec46('0x39')];}_0x374123[_0xec46('0x2b')](_0x56e906)['send'](_0x1d00d);};}exports['index']=function(_0x1b7e5d,_0xf5c533){var _0x5b409e={},_0x541ecb={},_0x4923cb={'count':0x0,'rows':[]};var _0xa657c4=_[_0xec46('0x3a')](db[_0xec46('0x3b')][_0xec46('0x3c')],function(_0x46336b){return{'name':_0x46336b[_0xec46('0x3d')],'type':_0x46336b[_0xec46('0x3e')]['key']};});_0x541ecb[_0xec46('0x3f')]=_[_0xec46('0x3a')](_0xa657c4,_0xec46('0x39'));_0x541ecb[_0xec46('0x40')]=_['keys'](_0x1b7e5d['query']);_0x541ecb[_0xec46('0x41')]=_[_0xec46('0x42')](_0x541ecb[_0xec46('0x3f')],_0x541ecb[_0xec46('0x40')]);_0x5b409e[_0xec46('0x43')]=_[_0xec46('0x42')](_0x541ecb['model'],qs[_0xec46('0x44')](_0x1b7e5d['query']['fields']));_0x5b409e[_0xec46('0x43')]=_0x5b409e[_0xec46('0x43')][_0xec46('0x45')]?_0x5b409e[_0xec46('0x43')]:_0x541ecb[_0xec46('0x3f')];if(!_0x1b7e5d[_0xec46('0x40')]['hasOwnProperty'](_0xec46('0x46'))){_0x5b409e[_0xec46('0x2f')]=qs['limit'](_0x1b7e5d['query'][_0xec46('0x2f')]);_0x5b409e[_0xec46('0x2e')]=qs[_0xec46('0x2e')](_0x1b7e5d[_0xec46('0x40')]['offset']);}_0x5b409e['order']=qs[_0xec46('0x47')](_0x1b7e5d[_0xec46('0x40')][_0xec46('0x47')]);_0x5b409e[_0xec46('0x48')]=qs[_0xec46('0x41')](_[_0xec46('0x49')](_0x1b7e5d[_0xec46('0x40')],_0x541ecb[_0xec46('0x41')]),_0xa657c4);if(_0x1b7e5d[_0xec46('0x40')][_0xec46('0x4a')]){_0x5b409e[_0xec46('0x48')]=_[_0xec46('0x4b')](_0x5b409e[_0xec46('0x48')],{'$or':_[_0xec46('0x3a')](_0xa657c4,function(_0x2f5d08){if(_0x2f5d08['type']!==_0xec46('0x4c')){var _0xfd8ff0={};_0xfd8ff0[_0x2f5d08['name']]={'$like':'%'+_0x1b7e5d[_0xec46('0x40')][_0xec46('0x4a')]+'%'};return _0xfd8ff0;}})});}_0x5b409e=_[_0xec46('0x4b')]({},_0x5b409e,_0x1b7e5d[_0xec46('0x4d')]);var _0x18034c={'where':_0x5b409e[_0xec46('0x48')]};return db['VoiceContext'][_0xec46('0x30')](_0x18034c)[_0xec46('0x20')](function(_0x3e5441){_0x4923cb[_0xec46('0x30')]=_0x3e5441;if(_0x1b7e5d['query'][_0xec46('0x4e')]){_0x5b409e[_0xec46('0x4f')]=[{'all':!![]}];}return db['VoiceContext'][_0xec46('0x50')](_0x5b409e);})[_0xec46('0x20')](function(_0x304f57){_0x4923cb[_0xec46('0x51')]=_0x304f57;return _0x4923cb;})['then'](respondWithFilteredResult(_0xf5c533,_0x5b409e))[_0xec46('0x52')](handleError(_0xf5c533,null));};exports['show']=function(_0x572f02,_0x26bccd){var _0x3763a4={'raw':![],'where':{'id':_0x572f02[_0xec46('0x53')]['id']}},_0xdc2c1c={};_0xdc2c1c[_0xec46('0x3f')]=_['keys'](db[_0xec46('0x3b')][_0xec46('0x3c')]);_0xdc2c1c[_0xec46('0x40')]=_[_0xec46('0x54')](_0x572f02['query']);_0xdc2c1c[_0xec46('0x41')]=_['intersection'](_0xdc2c1c[_0xec46('0x3f')],_0xdc2c1c[_0xec46('0x40')]);_0x3763a4[_0xec46('0x43')]=_[_0xec46('0x42')](_0xdc2c1c['model'],qs[_0xec46('0x44')](_0x572f02[_0xec46('0x40')][_0xec46('0x44')]));_0x3763a4['attributes']=_0x3763a4[_0xec46('0x43')][_0xec46('0x45')]?_0x3763a4[_0xec46('0x43')]:_0xdc2c1c[_0xec46('0x3f')];if(_0x572f02[_0xec46('0x40')][_0xec46('0x4e')]){_0x3763a4['include']=[{'all':!![]}];}_0x3763a4=_['merge']({},_0x3763a4,_0x572f02[_0xec46('0x4d')]);return db[_0xec46('0x3b')]['find'](_0x3763a4)[_0xec46('0x20')](handleEntityNotFound(_0x26bccd,null))[_0xec46('0x20')](respondWithResult(_0x26bccd,null))[_0xec46('0x52')](handleError(_0x26bccd,null));};exports[_0xec46('0x55')]=function(_0xcd7514,_0x4bf8fa,_0x4ed2a1){var _0x22e6b5;return db[_0xec46('0x3b')]['create'](_0xcd7514[_0xec46('0x56')],{'raw':!![]})[_0xec46('0x20')](function(_0x83d020){_0x22e6b5=_0x83d020;return db[_0xec46('0x3b')][_0xec46('0x50')]({'raw':!![]});})[_0xec46('0x20')](function(_0x17ac1d){var _0x15582b=fs[_0xec46('0x57')](path[_0xec46('0x58')](config[_0xec46('0x59')],'server/files/templates/context.ejs'),'utf8');var _0x5ad923=ejs[_0xec46('0x5a')](_0x15582b,{'contexts':_0x17ac1d||[]});fs[_0xec46('0x5b')](_0xec46('0x5c'),_0x5ad923);})[_0xec46('0x20')](function(){return respondWithRpcPromise(_0xec46('0x5d'),_0xec46('0x55'),{'module':_0xec46('0x5e')});})[_0xec46('0x20')](function(){var _0x3680d9=_0xcd7514[_0xec46('0x5f')][_0xec46('0x35')]({'plain':!![]});if(!_0x3680d9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3680d9[_0xec46('0x60')]==='user'){var _0x2db54f=_0x22e6b5[_0xec46('0x35')]({'plain':!![]});return db[_0xec46('0x61')]['find']({'where':{'name':_0xec46('0x36'),'userProfileId':_0x3680d9['userProfileId']},'raw':!![]})['then'](function(_0x49c29c){if(_0x49c29c&&_0x49c29c[_0xec46('0x62')]===0x0){return db['UserProfileResource'][_0xec46('0x55')]({'name':_0x2db54f['name'],'resourceId':_0x2db54f['id'],'type':_0x49c29c[_0xec46('0x39')],'sectionId':_0x49c29c['id']},{})[_0xec46('0x20')](function(){return _0x22e6b5;});}else{return _0x22e6b5;}})['catch'](function(_0x24b220){logger[_0xec46('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x24b220);throw _0x24b220;});}return _0x22e6b5;})[_0xec46('0x20')](respondWithResult(_0x4bf8fa,0xc9))['catch'](handleError(_0x4bf8fa,null));};exports['update']=function(_0x26476a,_0x2db874,_0x1204ef){var _0x294426;return db[_0xec46('0x3b')][_0xec46('0x63')]({'where':{'id':_0x26476a[_0xec46('0x53')]['id']}})['then'](handleEntityNotFound(_0x2db874,null))[_0xec46('0x20')](saveUpdates(_0x26476a['body'],null))[_0xec46('0x20')](function(_0x1cc78b){if(_0x1cc78b){_0x294426=_0x1cc78b;return db[_0xec46('0x3b')][_0xec46('0x50')]({'raw':!![]});}})[_0xec46('0x20')](function(_0x8f8406){var _0x1a59dc=fs['readFileSync'](path[_0xec46('0x58')](config[_0xec46('0x59')],_0xec46('0x64')),_0xec46('0x65'));var _0x4a056b=ejs[_0xec46('0x5a')](_0x1a59dc,{'contexts':_0x8f8406||[]});fs['writeFileSync'](_0xec46('0x5c'),_0x4a056b);})['then'](function(){return respondWithRpcPromise(_0xec46('0x5d'),_0xec46('0x66'),{'module':_0xec46('0x5e')});})['then'](function(){return _0x294426;})['then'](respondWithResult(_0x2db874,null))['catch'](handleError(_0x2db874,null));};exports[_0xec46('0x37')]=function(_0x47dffe,_0x25531d,_0x5b5647){var _0x335c1b;return db[_0xec46('0x3b')][_0xec46('0x63')]({'where':{'id':_0x47dffe['params']['id']}})['then'](handleEntityNotFound(_0x25531d,null))['then'](removeEntity(_0x25531d,null))[_0xec46('0x20')](function(){return db[_0xec46('0x3b')][_0xec46('0x50')]({'raw':!![]});})[_0xec46('0x20')](function(_0x5bba65){var _0xdf936d=fs[_0xec46('0x57')](path[_0xec46('0x58')](config[_0xec46('0x59')],_0xec46('0x64')),'utf8');var _0x929a2d=ejs['render'](_0xdf936d,{'contexts':_0x5bba65});fs[_0xec46('0x5b')](_0xec46('0x5c'),_0x929a2d);return respondWithRpcPromise(_0xec46('0x5d'),'destroy',{'module':'chan_sip.so'});})[_0xec46('0x52')](handleError(_0x25531d,null));};