387995b6865aaff8dc1b83cac85365f1afed9fd3
[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 _0x6d5d=['Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Contexts','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','readFileSync','join','root','writeFileSync','render','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','client','http','request','then','info','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','VoiceContext,\x20%s,\x20%s','result','catch','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','get','UserProfileResource','destroy','end','stack','name','send','index','map','rawAttributes','type','query','model','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','options','VoiceContext','includeAll','include','rows','show','params','keys','intersection','find','create','findAll','server/files/templates/context.ejs','utf8','/etc/asterisk/extensions_xcally_contexts.conf'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x6d5d,0x7a));var _0xd6d5=function(_0x44d2f7,_0x36474a){_0x44d2f7=_0x44d2f7-0x0;var _0x3c1693=_0x6d5d[_0x44d2f7];return _0x3c1693;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xd6d5('0x0'));var jsonpatch=require(_0xd6d5('0x1'));var rp=require(_0xd6d5('0x2'));var moment=require(_0xd6d5('0x3'));var BPromise=require(_0xd6d5('0x4'));var Mustache=require(_0xd6d5('0x5'));var util=require(_0xd6d5('0x6'));var path=require(_0xd6d5('0x7'));var sox=require(_0xd6d5('0x8'));var csv=require(_0xd6d5('0x9'));var ejs=require(_0xd6d5('0xa'));var fs=require('fs');var fs_extra=require(_0xd6d5('0xb'));var _=require(_0xd6d5('0xc'));var squel=require(_0xd6d5('0xd'));var crypto=require(_0xd6d5('0xe'));var jsforce=require(_0xd6d5('0xf'));var deskjs=require(_0xd6d5('0x10'));var toCsv=require(_0xd6d5('0x9'));var querystring=require(_0xd6d5('0x11'));var Papa=require(_0xd6d5('0x12'));var Redis=require(_0xd6d5('0x13'));var authService=require(_0xd6d5('0x14'));var qs=require(_0xd6d5('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd6d5('0x16'));var logger=require(_0xd6d5('0x17'))(_0xd6d5('0x18'));var utils=require('../../config/utils');var config=require(_0xd6d5('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xd6d5('0x1a'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xd6d5('0x1b')][_0xd6d5('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x57e079,_0x49096d,_0x584fe8,_0x48327e){return new BPromise(function(_0x1038f3,_0x3e6cc7){var _0x4af1ff=_0x48327e||client;return _0x4af1ff[_0xd6d5('0x1d')](_0x57e079,_0x584fe8)[_0xd6d5('0x1e')](function(_0x1443ae){logger[_0xd6d5('0x1f')]('VoiceContext,\x20%s,\x20%s',_0x49096d,'request\x20sent');logger[_0xd6d5('0x20')](_0xd6d5('0x21'),_0x49096d,'request\x20sent',JSON[_0xd6d5('0x22')](_0x1443ae));if(_0x1443ae[_0xd6d5('0x23')]){if(_0x1443ae[_0xd6d5('0x23')][_0xd6d5('0x24')]===0x1f4){logger['error']('VoiceContext,\x20%s,\x20%s',_0x49096d,_0x1443ae[_0xd6d5('0x23')][_0xd6d5('0x25')]);return _0x3e6cc7(_0x1443ae[_0xd6d5('0x23')][_0xd6d5('0x25')]);}logger[_0xd6d5('0x23')](_0xd6d5('0x26'),_0x49096d,_0x1443ae['error'][_0xd6d5('0x25')]);return _0x1038f3(_0x1443ae[_0xd6d5('0x23')]['message']);}else{logger[_0xd6d5('0x1f')]('VoiceContext,\x20%s,\x20%s',_0x49096d,'request\x20sent');_0x1038f3(_0x1443ae[_0xd6d5('0x27')][_0xd6d5('0x25')]);}})[_0xd6d5('0x28')](function(_0x40f6fe){logger['error'](_0xd6d5('0x26'),_0x49096d,_0x40f6fe);_0x3e6cc7(_0x40f6fe);});});}function respondWithStatusCode(_0x7315a3,_0x4d1c75){_0x4d1c75=_0x4d1c75||0xcc;return function(_0x42f6b0){if(_0x42f6b0){return _0x7315a3[_0xd6d5('0x29')](_0x4d1c75);}return _0x7315a3[_0xd6d5('0x2a')](_0x4d1c75)['end']();};}function respondWithResult(_0x4f4b76,_0x25e2aa){_0x25e2aa=_0x25e2aa||0xc8;return function(_0x16c224){if(_0x16c224){return _0x4f4b76['status'](_0x25e2aa)['json'](_0x16c224);}};}function respondWithFilteredResult(_0x157955,_0x150405){return function(_0x2b4bac){if(_0x2b4bac){var _0x38265a=typeof _0x150405[_0xd6d5('0x2b')]===_0xd6d5('0x2c')&&typeof _0x150405[_0xd6d5('0x2d')]===_0xd6d5('0x2c');var _0x5cd732=_0x2b4bac[_0xd6d5('0x2e')];var _0x5f0e78=_0x38265a?0x0:_0x150405[_0xd6d5('0x2b')];var _0x3546b6=_0x38265a?_0x2b4bac['count']:_0x150405['offset']+_0x150405[_0xd6d5('0x2d')];var _0x29a09b;if(_0x3546b6>=_0x5cd732){_0x3546b6=_0x5cd732;_0x29a09b=0xc8;}else{_0x29a09b=0xce;}_0x157955[_0xd6d5('0x2a')](_0x29a09b);return _0x157955[_0xd6d5('0x2f')](_0xd6d5('0x30'),_0x5f0e78+'-'+_0x3546b6+'/'+_0x5cd732)[_0xd6d5('0x31')](_0x2b4bac);}return null;};}function patchUpdates(_0x1a0508){return function(_0x4fdcf8){try{jsonpatch['apply'](_0x4fdcf8,_0x1a0508,!![]);}catch(_0x3fba63){return BPromise[_0xd6d5('0x32')](_0x3fba63);}return _0x4fdcf8[_0xd6d5('0x33')]();};}function saveUpdates(_0x44ef91,_0x15f762){return function(_0x2b1326){if(_0x2b1326){return _0x2b1326[_0xd6d5('0x34')](_0x44ef91)[_0xd6d5('0x1e')](function(_0x2f3cdf){return _0x2f3cdf;});}return null;};}function removeEntity(_0x1ffdad,_0x29ecaf){return function(_0xa8c75e){if(_0xa8c75e){return _0xa8c75e['destroy']()[_0xd6d5('0x1e')](function(){var _0xdb84d4=_0xa8c75e[_0xd6d5('0x35')]({'plain':!![]});var _0x26318a='Contexts';return db[_0xd6d5('0x36')][_0xd6d5('0x37')]({'where':{'type':_0x26318a,'resourceId':_0xdb84d4['id']}})[_0xd6d5('0x1e')](function(){return _0xa8c75e;});})[_0xd6d5('0x1e')](function(){_0x1ffdad[_0xd6d5('0x2a')](0xcc)[_0xd6d5('0x38')]();});}};}function handleEntityNotFound(_0x37c67d,_0x2457f7){return function(_0xa2bdf8){if(!_0xa2bdf8){_0x37c67d[_0xd6d5('0x29')](0x194);}return _0xa2bdf8;};}function handleError(_0x102a85,_0x382fe3){_0x382fe3=_0x382fe3||0x1f4;return function(_0x27351a){logger[_0xd6d5('0x23')](_0x27351a[_0xd6d5('0x39')]);if(_0x27351a[_0xd6d5('0x3a')]){delete _0x27351a[_0xd6d5('0x3a')];}_0x102a85[_0xd6d5('0x2a')](_0x382fe3)[_0xd6d5('0x3b')](_0x27351a);};}exports[_0xd6d5('0x3c')]=function(_0x4b4197,_0x1e2f09){var _0x347e05={},_0x4e7cb6={},_0x551be0={'count':0x0,'rows':[]};var _0x265bea=_[_0xd6d5('0x3d')](db['VoiceContext'][_0xd6d5('0x3e')],function(_0x136a03){return{'name':_0x136a03['fieldName'],'type':_0x136a03[_0xd6d5('0x3f')]['key']};});_0x4e7cb6['model']=_[_0xd6d5('0x3d')](_0x265bea,'name');_0x4e7cb6[_0xd6d5('0x40')]=_['keys'](_0x4b4197[_0xd6d5('0x40')]);_0x4e7cb6['filters']=_['intersection'](_0x4e7cb6[_0xd6d5('0x41')],_0x4e7cb6[_0xd6d5('0x40')]);_0x347e05[_0xd6d5('0x42')]=_['intersection'](_0x4e7cb6[_0xd6d5('0x41')],qs[_0xd6d5('0x43')](_0x4b4197[_0xd6d5('0x40')][_0xd6d5('0x43')]));_0x347e05[_0xd6d5('0x42')]=_0x347e05[_0xd6d5('0x42')][_0xd6d5('0x44')]?_0x347e05[_0xd6d5('0x42')]:_0x4e7cb6[_0xd6d5('0x41')];if(!_0x4b4197['query'][_0xd6d5('0x45')]('nolimit')){_0x347e05['limit']=qs[_0xd6d5('0x2d')](_0x4b4197[_0xd6d5('0x40')][_0xd6d5('0x2d')]);_0x347e05[_0xd6d5('0x2b')]=qs['offset'](_0x4b4197[_0xd6d5('0x40')][_0xd6d5('0x2b')]);}_0x347e05[_0xd6d5('0x46')]=qs['sort'](_0x4b4197[_0xd6d5('0x40')][_0xd6d5('0x47')]);_0x347e05[_0xd6d5('0x48')]=qs[_0xd6d5('0x49')](_[_0xd6d5('0x4a')](_0x4b4197[_0xd6d5('0x40')],_0x4e7cb6['filters']),_0x265bea);if(_0x4b4197[_0xd6d5('0x40')][_0xd6d5('0x4b')]){_0x347e05[_0xd6d5('0x48')]=_[_0xd6d5('0x4c')](_0x347e05['where'],{'$or':_['map'](_0x265bea,function(_0x58d6e8){if(_0x58d6e8['type']!=='VIRTUAL'){var _0x18d394={};_0x18d394[_0x58d6e8[_0xd6d5('0x3a')]]={'$like':'%'+_0x4b4197['query'][_0xd6d5('0x4b')]+'%'};return _0x18d394;}})});}_0x347e05=_[_0xd6d5('0x4c')]({},_0x347e05,_0x4b4197[_0xd6d5('0x4d')]);var _0x13e52e={'where':_0x347e05['where']};return db[_0xd6d5('0x4e')]['count'](_0x13e52e)['then'](function(_0x1813c2){_0x551be0[_0xd6d5('0x2e')]=_0x1813c2;if(_0x4b4197[_0xd6d5('0x40')][_0xd6d5('0x4f')]){_0x347e05[_0xd6d5('0x50')]=[{'all':!![]}];}return db[_0xd6d5('0x4e')]['findAll'](_0x347e05);})[_0xd6d5('0x1e')](function(_0x2e5e67){_0x551be0[_0xd6d5('0x51')]=_0x2e5e67;return _0x551be0;})[_0xd6d5('0x1e')](respondWithFilteredResult(_0x1e2f09,_0x347e05))[_0xd6d5('0x28')](handleError(_0x1e2f09,null));};exports[_0xd6d5('0x52')]=function(_0x4002e4,_0x5437ff){var _0x4d39fb={'raw':![],'where':{'id':_0x4002e4[_0xd6d5('0x53')]['id']}},_0x50e76b={};_0x50e76b[_0xd6d5('0x41')]=_[_0xd6d5('0x54')](db['VoiceContext'][_0xd6d5('0x3e')]);_0x50e76b[_0xd6d5('0x40')]=_[_0xd6d5('0x54')](_0x4002e4[_0xd6d5('0x40')]);_0x50e76b[_0xd6d5('0x49')]=_[_0xd6d5('0x55')](_0x50e76b[_0xd6d5('0x41')],_0x50e76b[_0xd6d5('0x40')]);_0x4d39fb[_0xd6d5('0x42')]=_[_0xd6d5('0x55')](_0x50e76b[_0xd6d5('0x41')],qs['fields'](_0x4002e4[_0xd6d5('0x40')][_0xd6d5('0x43')]));_0x4d39fb['attributes']=_0x4d39fb[_0xd6d5('0x42')][_0xd6d5('0x44')]?_0x4d39fb['attributes']:_0x50e76b[_0xd6d5('0x41')];if(_0x4002e4[_0xd6d5('0x40')][_0xd6d5('0x4f')]){_0x4d39fb['include']=[{'all':!![]}];}_0x4d39fb=_[_0xd6d5('0x4c')]({},_0x4d39fb,_0x4002e4['options']);return db[_0xd6d5('0x4e')][_0xd6d5('0x56')](_0x4d39fb)[_0xd6d5('0x1e')](handleEntityNotFound(_0x5437ff,null))[_0xd6d5('0x1e')](respondWithResult(_0x5437ff,null))['catch'](handleError(_0x5437ff,null));};exports[_0xd6d5('0x57')]=function(_0x256c9e,_0x13ff34,_0x40a2c8){var _0x28d9df;return db[_0xd6d5('0x4e')]['create'](_0x256c9e['body'],{'raw':!![]})[_0xd6d5('0x1e')](function(_0xf8198a){_0x28d9df=_0xf8198a;return db['VoiceContext'][_0xd6d5('0x58')]({'raw':!![]});})[_0xd6d5('0x1e')](function(_0x421f5e){var _0x154287=fs['readFileSync'](path['join'](config['root'],_0xd6d5('0x59')),_0xd6d5('0x5a'));var _0x434287=ejs['render'](_0x154287,{'contexts':_0x421f5e||[]});fs['writeFileSync'](_0xd6d5('0x5b'),_0x434287);})['then'](function(){return respondWithRpcPromise(_0xd6d5('0x5c'),_0xd6d5('0x57'),{'module':_0xd6d5('0x5d')});})[_0xd6d5('0x1e')](function(){var _0x38d8d2=_0x256c9e[_0xd6d5('0x5e')]['get']({'plain':!![]});if(!_0x38d8d2)throw new Error(_0xd6d5('0x5f'));if(_0x38d8d2[_0xd6d5('0x60')]===_0xd6d5('0x5e')){var _0x285af0=_0x28d9df[_0xd6d5('0x35')]({'plain':!![]});return db[_0xd6d5('0x61')]['find']({'where':{'name':_0xd6d5('0x62'),'userProfileId':_0x38d8d2['userProfileId']},'raw':!![]})[_0xd6d5('0x1e')](function(_0x3f1900){if(_0x3f1900&&_0x3f1900[_0xd6d5('0x63')]===0x0){return db[_0xd6d5('0x36')][_0xd6d5('0x57')]({'name':_0x285af0[_0xd6d5('0x3a')],'resourceId':_0x285af0['id'],'type':_0x3f1900[_0xd6d5('0x3a')],'sectionId':_0x3f1900['id']},{})['then'](function(){return _0x28d9df;});}else{return _0x28d9df;}})[_0xd6d5('0x28')](function(_0x324a70){logger[_0xd6d5('0x23')](_0xd6d5('0x64'),_0x324a70);throw _0x324a70;});}return _0x28d9df;})[_0xd6d5('0x1e')](respondWithResult(_0x13ff34,0xc9))[_0xd6d5('0x28')](handleError(_0x13ff34,null));};exports[_0xd6d5('0x34')]=function(_0x1278e2,_0x178334,_0x2086a8){var _0x405d04;return db['VoiceContext'][_0xd6d5('0x56')]({'where':{'id':_0x1278e2[_0xd6d5('0x53')]['id']}})[_0xd6d5('0x1e')](handleEntityNotFound(_0x178334,null))['then'](saveUpdates(_0x1278e2[_0xd6d5('0x65')],null))[_0xd6d5('0x1e')](function(_0x501cfa){if(_0x501cfa){_0x405d04=_0x501cfa;return db[_0xd6d5('0x4e')][_0xd6d5('0x58')]({'raw':!![]});}})[_0xd6d5('0x1e')](function(_0xe680e8){var _0x41d9e3=fs[_0xd6d5('0x66')](path[_0xd6d5('0x67')](config[_0xd6d5('0x68')],'server/files/templates/context.ejs'),'utf8');var _0x437e8a=ejs['render'](_0x41d9e3,{'contexts':_0xe680e8||[]});fs[_0xd6d5('0x69')](_0xd6d5('0x5b'),_0x437e8a);})[_0xd6d5('0x1e')](function(){return respondWithRpcPromise(_0xd6d5('0x5c'),_0xd6d5('0x34'),{'module':'chan_sip.so'});})[_0xd6d5('0x1e')](function(){return _0x405d04;})[_0xd6d5('0x1e')](respondWithResult(_0x178334,null))['catch'](handleError(_0x178334,null));};exports['destroy']=function(_0x228ef9,_0x4e8d75,_0x4b179d){var _0x41b663;return db[_0xd6d5('0x4e')]['find']({'where':{'id':_0x228ef9[_0xd6d5('0x53')]['id']}})[_0xd6d5('0x1e')](handleEntityNotFound(_0x4e8d75,null))[_0xd6d5('0x1e')](removeEntity(_0x4e8d75,null))[_0xd6d5('0x1e')](function(){return db[_0xd6d5('0x4e')]['findAll']({'raw':!![]});})[_0xd6d5('0x1e')](function(_0x1cbf00){var _0x20f814=fs['readFileSync'](path[_0xd6d5('0x67')](config[_0xd6d5('0x68')],_0xd6d5('0x59')),'utf8');var _0x37d949=ejs[_0xd6d5('0x6a')](_0x20f814,{'contexts':_0x1cbf00});fs[_0xd6d5('0x69')](_0xd6d5('0x5b'),_0x37d949);return respondWithRpcPromise('Reload',_0xd6d5('0x37'),{'module':_0xd6d5('0x5d')});})['catch'](handleError(_0x4e8d75,null));};