Built motion from commit 3c2ce842.|2.6.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 _0x488a=['bluebird','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','error','message','result','catch','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','Contexts','UserProfileResource','stack','name','send','index','VoiceContext','rawAttributes','type','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','options','find','create','body','readFileSync','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x3e81d9,_0x488e01){var _0x311823=function(_0x3785fd){while(--_0x3785fd){_0x3e81d9['push'](_0x3e81d9['shift']());}};_0x311823(++_0x488e01);}(_0x488a,0x64));var _0xa488=function(_0x18e640,_0x554827){_0x18e640=_0x18e640-0x0;var _0x3a8e5f=_0x488a[_0x18e640];return _0x3a8e5f;};'use strict';var emlformat=require(_0xa488('0x0'));var rimraf=require(_0xa488('0x1'));var zipdir=require(_0xa488('0x2'));var jsonpatch=require(_0xa488('0x3'));var rp=require(_0xa488('0x4'));var moment=require(_0xa488('0x5'));var BPromise=require(_0xa488('0x6'));var Mustache=require('mustache');var util=require(_0xa488('0x7'));var path=require(_0xa488('0x8'));var sox=require(_0xa488('0x9'));var csv=require(_0xa488('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa488('0xb'));var _=require('lodash');var squel=require(_0xa488('0xc'));var crypto=require(_0xa488('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xa488('0xe'));var toCsv=require(_0xa488('0xa'));var querystring=require(_0xa488('0xf'));var Papa=require(_0xa488('0x10'));var Redis=require(_0xa488('0x11'));var authService=require(_0xa488('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa488('0x13'));var logger=require(_0xa488('0x14'))(_0xa488('0x15'));var utils=require(_0xa488('0x16'));var config=require(_0xa488('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xa488('0x18'))['db'];var jayson=require(_0xa488('0x19'));var client=jayson[_0xa488('0x1a')][_0xa488('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x5867a7,_0xe82e97,_0xac260a,_0x4b976b){return new BPromise(function(_0x469aba,_0x5f9b96){var _0x4dea76=_0x4b976b||client;return _0x4dea76[_0xa488('0x1c')](_0x5867a7,_0xac260a)[_0xa488('0x1d')](function(_0x3c5d35){logger['info'](_0xa488('0x1e'),_0xe82e97,_0xa488('0x1f'));logger[_0xa488('0x20')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0xe82e97,'request\x20sent',JSON['stringify'](_0x3c5d35));if(_0x3c5d35[_0xa488('0x21')]){if(_0x3c5d35['error']['code']===0x1f4){logger['error'](_0xa488('0x1e'),_0xe82e97,_0x3c5d35['error'][_0xa488('0x22')]);return _0x5f9b96(_0x3c5d35[_0xa488('0x21')][_0xa488('0x22')]);}logger[_0xa488('0x21')](_0xa488('0x1e'),_0xe82e97,_0x3c5d35[_0xa488('0x21')][_0xa488('0x22')]);return _0x469aba(_0x3c5d35[_0xa488('0x21')]['message']);}else{logger['info']('VoiceContext,\x20%s,\x20%s',_0xe82e97,_0xa488('0x1f'));_0x469aba(_0x3c5d35[_0xa488('0x23')][_0xa488('0x22')]);}})[_0xa488('0x24')](function(_0x1024d2){logger[_0xa488('0x21')]('VoiceContext,\x20%s,\x20%s',_0xe82e97,_0x1024d2);_0x5f9b96(_0x1024d2);});});}function respondWithStatusCode(_0x9c1019,_0xc9e248){_0xc9e248=_0xc9e248||0xcc;return function(_0x572091){if(_0x572091){return _0x9c1019[_0xa488('0x25')](_0xc9e248);}return _0x9c1019['status'](_0xc9e248)[_0xa488('0x26')]();};}function respondWithResult(_0x475d83,_0x11d9d0){_0x11d9d0=_0x11d9d0||0xc8;return function(_0x102e43){if(_0x102e43){return _0x475d83[_0xa488('0x27')](_0x11d9d0)[_0xa488('0x28')](_0x102e43);}};}function respondWithFilteredResult(_0xb6c6ea,_0x4e2e93){return function(_0x49a3b4){if(_0x49a3b4){var _0xd7ec75=typeof _0x4e2e93[_0xa488('0x29')]===_0xa488('0x2a')&&typeof _0x4e2e93[_0xa488('0x2b')]==='undefined';var _0x27aee7=_0x49a3b4[_0xa488('0x2c')];var _0x2791b8=_0xd7ec75?0x0:_0x4e2e93['offset'];var _0x8a356a=_0xd7ec75?_0x49a3b4[_0xa488('0x2c')]:_0x4e2e93[_0xa488('0x29')]+_0x4e2e93['limit'];var _0x3b086b;if(_0x8a356a>=_0x27aee7){_0x8a356a=_0x27aee7;_0x3b086b=0xc8;}else{_0x3b086b=0xce;}_0xb6c6ea[_0xa488('0x27')](_0x3b086b);return _0xb6c6ea[_0xa488('0x2d')](_0xa488('0x2e'),_0x2791b8+'-'+_0x8a356a+'/'+_0x27aee7)[_0xa488('0x28')](_0x49a3b4);}return null;};}function patchUpdates(_0x749f29){return function(_0x55548f){try{jsonpatch[_0xa488('0x2f')](_0x55548f,_0x749f29,!![]);}catch(_0x5c664f){return BPromise[_0xa488('0x30')](_0x5c664f);}return _0x55548f[_0xa488('0x31')]();};}function saveUpdates(_0x39b384,_0x2cfcb6){return function(_0x58a588){if(_0x58a588){return _0x58a588[_0xa488('0x32')](_0x39b384)['then'](function(_0x3d6641){return _0x3d6641;});}return null;};}function removeEntity(_0x42b5e0,_0x42995a){return function(_0x1701d2){if(_0x1701d2){return _0x1701d2[_0xa488('0x33')]()[_0xa488('0x1d')](function(){var _0x3c90e9=_0x1701d2[_0xa488('0x34')]({'plain':!![]});var _0x72b4f9=_0xa488('0x35');return db[_0xa488('0x36')][_0xa488('0x33')]({'where':{'type':_0x72b4f9,'resourceId':_0x3c90e9['id']}})[_0xa488('0x1d')](function(){return _0x1701d2;});})[_0xa488('0x1d')](function(){_0x42b5e0[_0xa488('0x27')](0xcc)[_0xa488('0x26')]();});}};}function handleEntityNotFound(_0x46a84e,_0x13f598){return function(_0x17f56f){if(!_0x17f56f){_0x46a84e[_0xa488('0x25')](0x194);}return _0x17f56f;};}function handleError(_0x8fd889,_0x2a2360){_0x2a2360=_0x2a2360||0x1f4;return function(_0x12daea){logger['error'](_0x12daea[_0xa488('0x37')]);if(_0x12daea[_0xa488('0x38')]){delete _0x12daea[_0xa488('0x38')];}_0x8fd889[_0xa488('0x27')](_0x2a2360)[_0xa488('0x39')](_0x12daea);};}exports[_0xa488('0x3a')]=function(_0x415758,_0x2d2bd5){var _0x556e79={},_0x1286db={},_0x2385f0={'count':0x0,'rows':[]};var _0x4cf120=_['map'](db[_0xa488('0x3b')][_0xa488('0x3c')],function(_0x4ea484){return{'name':_0x4ea484['fieldName'],'type':_0x4ea484[_0xa488('0x3d')]['key']};});_0x1286db[_0xa488('0x3e')]=_[_0xa488('0x3f')](_0x4cf120,_0xa488('0x38'));_0x1286db[_0xa488('0x40')]=_[_0xa488('0x41')](_0x415758['query']);_0x1286db[_0xa488('0x42')]=_[_0xa488('0x43')](_0x1286db[_0xa488('0x3e')],_0x1286db['query']);_0x556e79[_0xa488('0x44')]=_[_0xa488('0x43')](_0x1286db[_0xa488('0x3e')],qs[_0xa488('0x45')](_0x415758[_0xa488('0x40')]['fields']));_0x556e79[_0xa488('0x44')]=_0x556e79[_0xa488('0x44')][_0xa488('0x46')]?_0x556e79['attributes']:_0x1286db[_0xa488('0x3e')];if(!_0x415758[_0xa488('0x40')][_0xa488('0x47')](_0xa488('0x48'))){_0x556e79[_0xa488('0x2b')]=qs['limit'](_0x415758[_0xa488('0x40')][_0xa488('0x2b')]);_0x556e79[_0xa488('0x29')]=qs[_0xa488('0x29')](_0x415758[_0xa488('0x40')]['offset']);}_0x556e79[_0xa488('0x49')]=qs[_0xa488('0x4a')](_0x415758[_0xa488('0x40')][_0xa488('0x4a')]);_0x556e79[_0xa488('0x4b')]=qs[_0xa488('0x42')](_[_0xa488('0x4c')](_0x415758[_0xa488('0x40')],_0x1286db['filters']),_0x4cf120);if(_0x415758['query']['filter']){_0x556e79['where']=_[_0xa488('0x4d')](_0x556e79[_0xa488('0x4b')],{'$or':_[_0xa488('0x3f')](_0x4cf120,function(_0x3c8517){if(_0x3c8517[_0xa488('0x3d')]!==_0xa488('0x4e')){var _0x14490e={};_0x14490e[_0x3c8517[_0xa488('0x38')]]={'$like':'%'+_0x415758[_0xa488('0x40')]['filter']+'%'};return _0x14490e;}})});}_0x556e79=_[_0xa488('0x4d')]({},_0x556e79,_0x415758['options']);var _0x4afeca={'where':_0x556e79[_0xa488('0x4b')]};return db[_0xa488('0x3b')][_0xa488('0x2c')](_0x4afeca)[_0xa488('0x1d')](function(_0x733511){_0x2385f0[_0xa488('0x2c')]=_0x733511;if(_0x415758[_0xa488('0x40')][_0xa488('0x4f')]){_0x556e79[_0xa488('0x50')]=[{'all':!![]}];}return db[_0xa488('0x3b')][_0xa488('0x51')](_0x556e79);})['then'](function(_0x2df18c){_0x2385f0[_0xa488('0x52')]=_0x2df18c;return _0x2385f0;})['then'](respondWithFilteredResult(_0x2d2bd5,_0x556e79))[_0xa488('0x24')](handleError(_0x2d2bd5,null));};exports[_0xa488('0x53')]=function(_0x4c0e28,_0x4f40db){var _0x4b67c8={'raw':![],'where':{'id':_0x4c0e28[_0xa488('0x54')]['id']}},_0x4bb3fb={};_0x4bb3fb[_0xa488('0x3e')]=_[_0xa488('0x41')](db[_0xa488('0x3b')]['rawAttributes']);_0x4bb3fb['query']=_[_0xa488('0x41')](_0x4c0e28[_0xa488('0x40')]);_0x4bb3fb[_0xa488('0x42')]=_['intersection'](_0x4bb3fb[_0xa488('0x3e')],_0x4bb3fb['query']);_0x4b67c8['attributes']=_[_0xa488('0x43')](_0x4bb3fb['model'],qs['fields'](_0x4c0e28['query']['fields']));_0x4b67c8[_0xa488('0x44')]=_0x4b67c8['attributes'][_0xa488('0x46')]?_0x4b67c8[_0xa488('0x44')]:_0x4bb3fb[_0xa488('0x3e')];if(_0x4c0e28['query'][_0xa488('0x4f')]){_0x4b67c8['include']=[{'all':!![]}];}_0x4b67c8=_[_0xa488('0x4d')]({},_0x4b67c8,_0x4c0e28[_0xa488('0x55')]);return db[_0xa488('0x3b')][_0xa488('0x56')](_0x4b67c8)[_0xa488('0x1d')](handleEntityNotFound(_0x4f40db,null))[_0xa488('0x1d')](respondWithResult(_0x4f40db,null))[_0xa488('0x24')](handleError(_0x4f40db,null));};exports[_0xa488('0x57')]=function(_0x585ed7,_0x2383e1,_0x15a853){var _0x52a15d;return db[_0xa488('0x3b')][_0xa488('0x57')](_0x585ed7[_0xa488('0x58')],{'raw':!![]})[_0xa488('0x1d')](function(_0x27536f){_0x52a15d=_0x27536f;return db[_0xa488('0x3b')][_0xa488('0x51')]({'raw':!![]});})[_0xa488('0x1d')](function(_0x4e87ce){var _0x444e05=fs[_0xa488('0x59')](path[_0xa488('0x5a')](config[_0xa488('0x5b')],_0xa488('0x5c')),_0xa488('0x5d'));var _0x4fd6c5=ejs[_0xa488('0x5e')](_0x444e05,{'contexts':_0x4e87ce||[]});fs[_0xa488('0x5f')](_0xa488('0x60'),_0x4fd6c5);})[_0xa488('0x1d')](function(){return respondWithRpcPromise(_0xa488('0x61'),_0xa488('0x57'),{'module':'chan_sip.so'});})['then'](function(){var _0x382dba=_0x585ed7[_0xa488('0x62')]['get']({'plain':!![]});if(!_0x382dba)throw new Error(_0xa488('0x63'));if(_0x382dba[_0xa488('0x64')]===_0xa488('0x62')){var _0x578814=_0x52a15d[_0xa488('0x34')]({'plain':!![]});return db[_0xa488('0x65')][_0xa488('0x56')]({'where':{'name':_0xa488('0x35'),'userProfileId':_0x382dba[_0xa488('0x66')]},'raw':!![]})[_0xa488('0x1d')](function(_0x16cb0e){if(_0x16cb0e&&_0x16cb0e[_0xa488('0x67')]===0x0){return db['UserProfileResource'][_0xa488('0x57')]({'name':_0x578814[_0xa488('0x38')],'resourceId':_0x578814['id'],'type':_0x16cb0e[_0xa488('0x38')],'sectionId':_0x16cb0e['id']},{})[_0xa488('0x1d')](function(){return _0x52a15d;});}else{return _0x52a15d;}})[_0xa488('0x24')](function(_0x4c042e){logger[_0xa488('0x21')](_0xa488('0x68'),_0x4c042e);throw _0x4c042e;});}return _0x52a15d;})['then'](respondWithResult(_0x2383e1,0xc9))['catch'](handleError(_0x2383e1,null));};exports[_0xa488('0x32')]=function(_0x2db439,_0x5bf967,_0x344c31){var _0x74c69f;return db[_0xa488('0x3b')]['find']({'where':{'id':_0x2db439[_0xa488('0x54')]['id']}})[_0xa488('0x1d')](handleEntityNotFound(_0x5bf967,null))[_0xa488('0x1d')](saveUpdates(_0x2db439[_0xa488('0x58')],null))[_0xa488('0x1d')](function(_0x375c2f){if(_0x375c2f){_0x74c69f=_0x375c2f;return db['VoiceContext']['findAll']({'raw':!![]});}})['then'](function(_0x2b055d){var _0x4c77fc=fs[_0xa488('0x59')](path['join'](config[_0xa488('0x5b')],'server/files/templates/context.ejs'),'utf8');var _0x2614f0=ejs[_0xa488('0x5e')](_0x4c77fc,{'contexts':_0x2b055d||[]});fs[_0xa488('0x5f')](_0xa488('0x60'),_0x2614f0);})[_0xa488('0x1d')](function(){return respondWithRpcPromise(_0xa488('0x61'),_0xa488('0x32'),{'module':_0xa488('0x69')});})['then'](function(){return _0x74c69f;})[_0xa488('0x1d')](respondWithResult(_0x5bf967,null))[_0xa488('0x24')](handleError(_0x5bf967,null));};exports['destroy']=function(_0x5dbb4d,_0x5089b5,_0x4324b4){var _0x4a569c;return db['VoiceContext'][_0xa488('0x56')]({'where':{'id':_0x5dbb4d[_0xa488('0x54')]['id']}})['then'](handleEntityNotFound(_0x5089b5,null))[_0xa488('0x1d')](removeEntity(_0x5089b5,null))[_0xa488('0x1d')](function(){return db['VoiceContext'][_0xa488('0x51')]({'raw':!![]});})[_0xa488('0x1d')](function(_0x23119c){var _0x2c2335=fs[_0xa488('0x59')](path[_0xa488('0x5a')](config[_0xa488('0x5b')],_0xa488('0x5c')),_0xa488('0x5d'));var _0x1e76b3=ejs[_0xa488('0x5e')](_0x2c2335,{'contexts':_0x23119c});fs['writeFileSync'](_0xa488('0x60'),_0x1e76b3);return respondWithRpcPromise(_0xa488('0x61'),'destroy',{'module':'chan_sip.so'});})[_0xa488('0x24')](handleError(_0x5089b5,null));};