Built motion from commit (unavailable).|2.5.21
[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 _0x5620=['writeFileSync','html-pdf','rimraf','zip-dir','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','client','http','then','info','VoiceContext,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','catch','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','destroy','name','send','map','VoiceContext','rawAttributes','type','key','model','keys','query','attributes','intersection','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','rows','show','params','include','find','create','readFileSync','join','root','server/files/templates/context.ejs','render','/etc/asterisk/extensions_xcally_contexts.conf','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Contexts','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','utf8','Reload','chan_sip.so'];(function(_0x5459da,_0x3ecd62){var _0x5f2ff4=function(_0x245709){while(--_0x245709){_0x5459da['push'](_0x5459da['shift']());}};_0x5f2ff4(++_0x3ecd62);}(_0x5620,0xbf));var _0x0562=function(_0x143368,_0x5d0b64){_0x143368=_0x143368-0x0;var _0x44c10a=_0x5620[_0x143368];return _0x44c10a;};'use strict';var pdf=require(_0x0562('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x0562('0x1'));var zipdir=require(_0x0562('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x0562('0x3'));var Mustache=require('mustache');var util=require(_0x0562('0x4'));var path=require('path');var sox=require(_0x0562('0x5'));var csv=require(_0x0562('0x6'));var ejs=require(_0x0562('0x7'));var fs=require('fs');var _=require(_0x0562('0x8'));var squel=require(_0x0562('0x9'));var crypto=require(_0x0562('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x0562('0x6'));var querystring=require('querystring');var Papa=require(_0x0562('0xb'));var Redis=require(_0x0562('0xc'));var authService=require(_0x0562('0xd'));var qs=require(_0x0562('0xe'));var as=require(_0x0562('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0562('0x10'))(_0x0562('0x11'));var utils=require(_0x0562('0x12'));var config=require(_0x0562('0x13'));var licenseUtil=require(_0x0562('0x14'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0x0562('0x15')][_0x0562('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x10ae16,_0x206f65,_0x4cc0e1,_0x160656){return new BPromise(function(_0xe654c7,_0x3ed2c8){var _0x40edbf=_0x160656||client;return _0x40edbf['request'](_0x10ae16,_0x4cc0e1)[_0x0562('0x17')](function(_0x4ed54d){logger[_0x0562('0x18')](_0x0562('0x19'),_0x206f65,'request\x20sent');logger[_0x0562('0x1a')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x206f65,_0x0562('0x1b'),JSON[_0x0562('0x1c')](_0x4ed54d));if(_0x4ed54d[_0x0562('0x1d')]){if(_0x4ed54d['error'][_0x0562('0x1e')]===0x1f4){logger['error'](_0x0562('0x19'),_0x206f65,_0x4ed54d['error'][_0x0562('0x1f')]);return _0x3ed2c8(_0x4ed54d[_0x0562('0x1d')]['message']);}logger[_0x0562('0x1d')](_0x0562('0x19'),_0x206f65,_0x4ed54d[_0x0562('0x1d')][_0x0562('0x1f')]);return _0xe654c7(_0x4ed54d['error'][_0x0562('0x1f')]);}else{logger['info']('VoiceContext,\x20%s,\x20%s',_0x206f65,'request\x20sent');_0xe654c7(_0x4ed54d['result'][_0x0562('0x1f')]);}})[_0x0562('0x20')](function(_0x17a454){logger[_0x0562('0x1d')](_0x0562('0x19'),_0x206f65,_0x17a454);_0x3ed2c8(_0x17a454);});});}function respondWithStatusCode(_0x541e82,_0x5121ee){_0x5121ee=_0x5121ee||0xcc;return function(_0x3e06ab){if(_0x3e06ab){return _0x541e82[_0x0562('0x21')](_0x5121ee);}return _0x541e82[_0x0562('0x22')](_0x5121ee)[_0x0562('0x23')]();};}function respondWithResult(_0x22a500,_0x57c34f){_0x57c34f=_0x57c34f||0xc8;return function(_0x4123e4){if(_0x4123e4){return _0x22a500[_0x0562('0x22')](_0x57c34f)[_0x0562('0x24')](_0x4123e4);}};}function respondWithFilteredResult(_0x23d10a,_0x1adf63){return function(_0xade948){if(_0xade948){var _0x461efe=_0xade948[_0x0562('0x25')],_0x15f1e7=_0x1adf63['offset'],_0x39132f=_0x1adf63[_0x0562('0x26')]+_0x1adf63[_0x0562('0x27')],_0x44b4b8;if(_0x39132f>=_0x461efe){_0x39132f=_0x461efe;_0x44b4b8=0xc8;}else{_0x44b4b8=0xce;}_0x23d10a[_0x0562('0x22')](_0x44b4b8);return _0x23d10a[_0x0562('0x28')]('Content-Range',_0x15f1e7+'-'+_0x39132f+'/'+_0x461efe)['json'](_0xade948);}return null;};}function patchUpdates(_0x51ac77){return function(_0x5373c4){try{jsonpatch[_0x0562('0x29')](_0x5373c4,_0x51ac77,!![]);}catch(_0x4b1ad1){return BPromise[_0x0562('0x2a')](_0x4b1ad1);}return _0x5373c4[_0x0562('0x2b')]();};}function saveUpdates(_0x2d3772,_0xc2a12f){return function(_0x28051f){if(_0x28051f){return _0x28051f[_0x0562('0x2c')](_0x2d3772)[_0x0562('0x17')](function(_0xef7f79){return _0xef7f79;});}return null;};}function removeEntity(_0x263185,_0x280d79){return function(_0x5151fb){if(_0x5151fb){return _0x5151fb[_0x0562('0x2d')]()[_0x0562('0x17')](function(){var _0x5cbbb8=_0x5151fb['get']({'plain':!![]});var _0x3c57ad='Contexts';return db['UserProfileResource'][_0x0562('0x2d')]({'where':{'type':_0x3c57ad,'resourceId':_0x5cbbb8['id']}})[_0x0562('0x17')](function(){return _0x5151fb;});})['then'](function(){_0x263185[_0x0562('0x22')](0xcc)[_0x0562('0x23')]();});}};}function handleEntityNotFound(_0x3e3e34,_0x488fb8){return function(_0x2b392f){if(!_0x2b392f){_0x3e3e34[_0x0562('0x21')](0x194);}return _0x2b392f;};}function handleError(_0x43b235,_0x41f94d){_0x41f94d=_0x41f94d||0x1f4;return function(_0x1d4d01){logger[_0x0562('0x1d')](_0x1d4d01['stack']);if(_0x1d4d01[_0x0562('0x2e')]){delete _0x1d4d01[_0x0562('0x2e')];}_0x43b235[_0x0562('0x22')](_0x41f94d)[_0x0562('0x2f')](_0x1d4d01);};}exports['index']=function(_0x30d83f,_0x4e5780){var _0x3fd97a={},_0x8e2a30={},_0x44bb7f={'count':0x0,'rows':[]};var _0xa32075=_[_0x0562('0x30')](db[_0x0562('0x31')][_0x0562('0x32')],function(_0x568f9e){return{'name':_0x568f9e['fieldName'],'type':_0x568f9e[_0x0562('0x33')][_0x0562('0x34')]};});_0x8e2a30[_0x0562('0x35')]=_['map'](_0xa32075,_0x0562('0x2e'));_0x8e2a30['query']=_[_0x0562('0x36')](_0x30d83f['query']);_0x8e2a30['filters']=_['intersection'](_0x8e2a30[_0x0562('0x35')],_0x8e2a30[_0x0562('0x37')]);_0x3fd97a[_0x0562('0x38')]=_[_0x0562('0x39')](_0x8e2a30[_0x0562('0x35')],qs['fields'](_0x30d83f[_0x0562('0x37')][_0x0562('0x3a')]));_0x3fd97a[_0x0562('0x38')]=_0x3fd97a[_0x0562('0x38')][_0x0562('0x3b')]?_0x3fd97a[_0x0562('0x38')]:_0x8e2a30['model'];if(!_0x30d83f[_0x0562('0x37')]['hasOwnProperty'](_0x0562('0x3c'))){_0x3fd97a[_0x0562('0x27')]=qs[_0x0562('0x27')](_0x30d83f['query']['limit']);_0x3fd97a[_0x0562('0x26')]=qs[_0x0562('0x26')](_0x30d83f[_0x0562('0x37')]['offset']);}_0x3fd97a[_0x0562('0x3d')]=qs[_0x0562('0x3e')](_0x30d83f[_0x0562('0x37')][_0x0562('0x3e')]);_0x3fd97a[_0x0562('0x3f')]=qs[_0x0562('0x40')](_[_0x0562('0x41')](_0x30d83f['query'],_0x8e2a30['filters']),_0xa32075);if(_0x30d83f['query'][_0x0562('0x42')]){_0x3fd97a[_0x0562('0x3f')]=_[_0x0562('0x43')](_0x3fd97a[_0x0562('0x3f')],{'$or':_['map'](_0xa32075,function(_0x59291e){if(_0x59291e[_0x0562('0x33')]!==_0x0562('0x44')){var _0x1bf465={};_0x1bf465[_0x59291e['name']]={'$like':'%'+_0x30d83f[_0x0562('0x37')]['filter']+'%'};return _0x1bf465;}})});}_0x3fd97a=_[_0x0562('0x43')]({},_0x3fd97a,_0x30d83f['options']);var _0x265908={'where':_0x3fd97a[_0x0562('0x3f')]};return db[_0x0562('0x31')][_0x0562('0x25')](_0x265908)[_0x0562('0x17')](function(_0x307a5){_0x44bb7f[_0x0562('0x25')]=_0x307a5;if(_0x30d83f['query'][_0x0562('0x45')]){_0x3fd97a['include']=[{'all':!![]}];}return db['VoiceContext']['findAll'](_0x3fd97a);})['then'](function(_0x2a2aa0){_0x44bb7f[_0x0562('0x46')]=_0x2a2aa0;return _0x44bb7f;})[_0x0562('0x17')](respondWithFilteredResult(_0x4e5780,_0x3fd97a))[_0x0562('0x20')](handleError(_0x4e5780,null));};exports[_0x0562('0x47')]=function(_0x4fbab8,_0x58f228){var _0x49d0b4={'raw':![],'where':{'id':_0x4fbab8[_0x0562('0x48')]['id']}},_0x412a1e={};_0x412a1e[_0x0562('0x35')]=_[_0x0562('0x36')](db['VoiceContext'][_0x0562('0x32')]);_0x412a1e[_0x0562('0x37')]=_[_0x0562('0x36')](_0x4fbab8[_0x0562('0x37')]);_0x412a1e['filters']=_[_0x0562('0x39')](_0x412a1e[_0x0562('0x35')],_0x412a1e[_0x0562('0x37')]);_0x49d0b4[_0x0562('0x38')]=_['intersection'](_0x412a1e[_0x0562('0x35')],qs['fields'](_0x4fbab8['query'][_0x0562('0x3a')]));_0x49d0b4[_0x0562('0x38')]=_0x49d0b4[_0x0562('0x38')]['length']?_0x49d0b4[_0x0562('0x38')]:_0x412a1e['model'];if(_0x4fbab8[_0x0562('0x37')][_0x0562('0x45')]){_0x49d0b4[_0x0562('0x49')]=[{'all':!![]}];}_0x49d0b4=_[_0x0562('0x43')]({},_0x49d0b4,_0x4fbab8['options']);return db[_0x0562('0x31')][_0x0562('0x4a')](_0x49d0b4)[_0x0562('0x17')](handleEntityNotFound(_0x58f228,null))['then'](respondWithResult(_0x58f228,null))[_0x0562('0x20')](handleError(_0x58f228,null));};exports[_0x0562('0x4b')]=function(_0x2991f4,_0x2802b1,_0x3340cf){var _0x4353b1;return db[_0x0562('0x31')][_0x0562('0x4b')](_0x2991f4['body'],{'raw':!![]})[_0x0562('0x17')](function(_0x19db49){_0x4353b1=_0x19db49;return db[_0x0562('0x31')]['findAll']({'raw':!![]});})[_0x0562('0x17')](function(_0xf24e91){var _0x10ce2a=fs[_0x0562('0x4c')](path[_0x0562('0x4d')](config[_0x0562('0x4e')],_0x0562('0x4f')),'utf8');var _0xc50bb2=ejs[_0x0562('0x50')](_0x10ce2a,{'contexts':_0xf24e91||[]});fs['writeFileSync'](_0x0562('0x51'),_0xc50bb2);})[_0x0562('0x17')](function(){return respondWithRpcPromise('Reload',_0x0562('0x4b'),{'module':'chan_sip.so'});})[_0x0562('0x17')](function(){var _0x221ec0=_0x2991f4[_0x0562('0x52')][_0x0562('0x53')]({'plain':!![]});if(!_0x221ec0)throw new Error(_0x0562('0x54'));if(_0x221ec0[_0x0562('0x55')]==='user'){var _0x144090=_0x4353b1[_0x0562('0x53')]({'plain':!![]});return db['UserProfileSection'][_0x0562('0x4a')]({'where':{'name':_0x0562('0x56'),'userProfileId':_0x221ec0[_0x0562('0x57')]},'raw':!![]})['then'](function(_0x21d5f9){if(_0x21d5f9&&_0x21d5f9['autoAssociation']===0x0){return db[_0x0562('0x58')][_0x0562('0x4b')]({'name':_0x144090[_0x0562('0x2e')],'resourceId':_0x144090['id'],'type':_0x21d5f9['name'],'sectionId':_0x21d5f9['id']},{})[_0x0562('0x17')](function(){return _0x4353b1;});}else{return _0x4353b1;}})[_0x0562('0x20')](function(_0xf047e1){logger[_0x0562('0x1d')](_0x0562('0x59'),_0xf047e1);throw _0xf047e1;});}return _0x4353b1;})[_0x0562('0x17')](respondWithResult(_0x2802b1,0xc9))[_0x0562('0x20')](handleError(_0x2802b1,null));};exports[_0x0562('0x2c')]=function(_0x25eee7,_0x52d397,_0x4915df){var _0x433715;return db[_0x0562('0x31')][_0x0562('0x4a')]({'where':{'id':_0x25eee7[_0x0562('0x48')]['id']}})[_0x0562('0x17')](handleEntityNotFound(_0x52d397,null))[_0x0562('0x17')](saveUpdates(_0x25eee7[_0x0562('0x5a')],null))[_0x0562('0x17')](function(_0x19212e){if(_0x19212e){_0x433715=_0x19212e;return db[_0x0562('0x31')]['findAll']({'raw':!![]});}})[_0x0562('0x17')](function(_0xeb8862){var _0x537df4=fs[_0x0562('0x4c')](path[_0x0562('0x4d')](config[_0x0562('0x4e')],_0x0562('0x4f')),_0x0562('0x5b'));var _0x331040=ejs[_0x0562('0x50')](_0x537df4,{'contexts':_0xeb8862||[]});fs['writeFileSync'](_0x0562('0x51'),_0x331040);})[_0x0562('0x17')](function(){return respondWithRpcPromise(_0x0562('0x5c'),'update',{'module':_0x0562('0x5d')});})['then'](function(){return _0x433715;})[_0x0562('0x17')](respondWithResult(_0x52d397,null))[_0x0562('0x20')](handleError(_0x52d397,null));};exports['destroy']=function(_0x141e13,_0x574fcb,_0x2ac1ed){var _0x167261;return db[_0x0562('0x31')][_0x0562('0x4a')]({'where':{'id':_0x141e13[_0x0562('0x48')]['id']}})[_0x0562('0x17')](handleEntityNotFound(_0x574fcb,null))[_0x0562('0x17')](removeEntity(_0x574fcb,null))[_0x0562('0x17')](function(){return db[_0x0562('0x31')]['findAll']({'raw':!![]});})['then'](function(_0x4346ca){var _0x1030d2=fs['readFileSync'](path[_0x0562('0x4d')](config[_0x0562('0x4e')],_0x0562('0x4f')),_0x0562('0x5b'));var _0x3b3188=ejs[_0x0562('0x50')](_0x1030d2,{'contexts':_0x4346ca});fs[_0x0562('0x5e')](_0x0562('0x51'),_0x3b3188);return respondWithRpcPromise(_0x0562('0x5c'),_0x0562('0x2d'),{'module':_0x0562('0x5d')});})['catch'](handleError(_0x574fcb,null));};