Built motion from commit (unavailable).|2.5.23
[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 _0x7aaf=['utf8','render','writeFileSync','Reload','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','join','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','destroy','html-pdf','rimraf','zip-dir','moment','mustache','path','sox','to-csv','ejs','squel','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','VoiceContext,\x20%s,\x20%s','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','sendStatus','status','json','count','offset','set','Content-Range','reject','save','update','Contexts','stack','name','send','index','map','VoiceContext','rawAttributes','type','key','model','query','keys','filters','fields','attributes','length','hasOwnProperty','limit','order','sort','where','filter','VIRTUAL','merge','options','include','findAll','catch','show','params','intersection','includeAll','find','create','readFileSync','root','server/files/templates/context.ejs'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x7aaf,0x1eb));var _0xf7aa=function(_0x13430b,_0x7430a5){_0x13430b=_0x13430b-0x0;var _0x2af737=_0x7aaf[_0x13430b];return _0x2af737;};'use strict';var pdf=require(_0xf7aa('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xf7aa('0x1'));var zipdir=require(_0xf7aa('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xf7aa('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xf7aa('0x4'));var util=require('util');var path=require(_0xf7aa('0x5'));var sox=require(_0xf7aa('0x6'));var csv=require(_0xf7aa('0x7'));var ejs=require(_0xf7aa('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0xf7aa('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xf7aa('0xa'));var toCsv=require(_0xf7aa('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xf7aa('0xb'));var qs=require(_0xf7aa('0xc'));var as=require(_0xf7aa('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf7aa('0xe'))('api');var utils=require('../../config/utils');var config=require(_0xf7aa('0xf'));var licenseUtil=require(_0xf7aa('0x10'));var db=require(_0xf7aa('0x11'))['db'];var jayson=require(_0xf7aa('0x12'));var client=jayson[_0xf7aa('0x13')][_0xf7aa('0x14')]({'port':0x232a});function respondWithRpcPromise(_0x2c2879,_0x1aa2d4,_0x23e749,_0x301118){return new BPromise(function(_0x5d3ed3,_0x79dc07){var _0x36bc97=_0x301118||client;return _0x36bc97[_0xf7aa('0x15')](_0x2c2879,_0x23e749)[_0xf7aa('0x16')](function(_0x5c8c69){logger['info'](_0xf7aa('0x17'),_0x1aa2d4,'request\x20sent');logger[_0xf7aa('0x18')](_0xf7aa('0x19'),_0x1aa2d4,_0xf7aa('0x1a'),JSON[_0xf7aa('0x1b')](_0x5c8c69));if(_0x5c8c69[_0xf7aa('0x1c')]){if(_0x5c8c69[_0xf7aa('0x1c')][_0xf7aa('0x1d')]===0x1f4){logger[_0xf7aa('0x1c')](_0xf7aa('0x17'),_0x1aa2d4,_0x5c8c69[_0xf7aa('0x1c')][_0xf7aa('0x1e')]);return _0x79dc07(_0x5c8c69['error']['message']);}logger[_0xf7aa('0x1c')]('VoiceContext,\x20%s,\x20%s',_0x1aa2d4,_0x5c8c69[_0xf7aa('0x1c')][_0xf7aa('0x1e')]);return _0x5d3ed3(_0x5c8c69[_0xf7aa('0x1c')]['message']);}else{logger['info'](_0xf7aa('0x17'),_0x1aa2d4,_0xf7aa('0x1a'));_0x5d3ed3(_0x5c8c69['result'][_0xf7aa('0x1e')]);}})['catch'](function(_0x22c8d0){logger[_0xf7aa('0x1c')](_0xf7aa('0x17'),_0x1aa2d4,_0x22c8d0);_0x79dc07(_0x22c8d0);});});}function respondWithStatusCode(_0x328b01,_0x44a73e){_0x44a73e=_0x44a73e||0xcc;return function(_0x1de17f){if(_0x1de17f){return _0x328b01[_0xf7aa('0x1f')](_0x44a73e);}return _0x328b01[_0xf7aa('0x20')](_0x44a73e)['end']();};}function respondWithResult(_0xfb8d28,_0x4cc942){_0x4cc942=_0x4cc942||0xc8;return function(_0xdc3784){if(_0xdc3784){return _0xfb8d28[_0xf7aa('0x20')](_0x4cc942)[_0xf7aa('0x21')](_0xdc3784);}};}function respondWithFilteredResult(_0x2982a8,_0x5b3b02){return function(_0x1a69dc){if(_0x1a69dc){var _0x42e6b8=_0x1a69dc[_0xf7aa('0x22')],_0x3565a7=_0x5b3b02[_0xf7aa('0x23')],_0x2b5fbc=_0x5b3b02['offset']+_0x5b3b02['limit'],_0x57d200;if(_0x2b5fbc>=_0x42e6b8){_0x2b5fbc=_0x42e6b8;_0x57d200=0xc8;}else{_0x57d200=0xce;}_0x2982a8['status'](_0x57d200);return _0x2982a8[_0xf7aa('0x24')](_0xf7aa('0x25'),_0x3565a7+'-'+_0x2b5fbc+'/'+_0x42e6b8)[_0xf7aa('0x21')](_0x1a69dc);}return null;};}function patchUpdates(_0x2c0265){return function(_0x1ae4ea){try{jsonpatch['apply'](_0x1ae4ea,_0x2c0265,!![]);}catch(_0x27c492){return BPromise[_0xf7aa('0x26')](_0x27c492);}return _0x1ae4ea[_0xf7aa('0x27')]();};}function saveUpdates(_0xb6e82b,_0x1ac4dd){return function(_0x28a39a){if(_0x28a39a){return _0x28a39a[_0xf7aa('0x28')](_0xb6e82b)[_0xf7aa('0x16')](function(_0x46c0e5){return _0x46c0e5;});}return null;};}function removeEntity(_0x143f2b,_0x458b87){return function(_0x3e84e4){if(_0x3e84e4){return _0x3e84e4['destroy']()[_0xf7aa('0x16')](function(){var _0x3cdc78=_0x3e84e4['get']({'plain':!![]});var _0x2700f4=_0xf7aa('0x29');return db['UserProfileResource']['destroy']({'where':{'type':_0x2700f4,'resourceId':_0x3cdc78['id']}})[_0xf7aa('0x16')](function(){return _0x3e84e4;});})[_0xf7aa('0x16')](function(){_0x143f2b[_0xf7aa('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x38c509,_0x4315eb){return function(_0x2b5cd9){if(!_0x2b5cd9){_0x38c509['sendStatus'](0x194);}return _0x2b5cd9;};}function handleError(_0x57507a,_0x4d1f22){_0x4d1f22=_0x4d1f22||0x1f4;return function(_0x53d93d){logger[_0xf7aa('0x1c')](_0x53d93d[_0xf7aa('0x2a')]);if(_0x53d93d[_0xf7aa('0x2b')]){delete _0x53d93d[_0xf7aa('0x2b')];}_0x57507a['status'](_0x4d1f22)[_0xf7aa('0x2c')](_0x53d93d);};}exports[_0xf7aa('0x2d')]=function(_0x51e917,_0x21631f){var _0x24caa2={},_0x360a9d={},_0x59e995={'count':0x0,'rows':[]};var _0x54d59d=_[_0xf7aa('0x2e')](db[_0xf7aa('0x2f')][_0xf7aa('0x30')],function(_0x5e9ab0){return{'name':_0x5e9ab0['fieldName'],'type':_0x5e9ab0[_0xf7aa('0x31')][_0xf7aa('0x32')]};});_0x360a9d[_0xf7aa('0x33')]=_[_0xf7aa('0x2e')](_0x54d59d,_0xf7aa('0x2b'));_0x360a9d[_0xf7aa('0x34')]=_[_0xf7aa('0x35')](_0x51e917[_0xf7aa('0x34')]);_0x360a9d[_0xf7aa('0x36')]=_['intersection'](_0x360a9d[_0xf7aa('0x33')],_0x360a9d[_0xf7aa('0x34')]);_0x24caa2['attributes']=_['intersection'](_0x360a9d[_0xf7aa('0x33')],qs[_0xf7aa('0x37')](_0x51e917[_0xf7aa('0x34')]['fields']));_0x24caa2[_0xf7aa('0x38')]=_0x24caa2[_0xf7aa('0x38')][_0xf7aa('0x39')]?_0x24caa2['attributes']:_0x360a9d[_0xf7aa('0x33')];if(!_0x51e917['query'][_0xf7aa('0x3a')]('nolimit')){_0x24caa2[_0xf7aa('0x3b')]=qs[_0xf7aa('0x3b')](_0x51e917[_0xf7aa('0x34')][_0xf7aa('0x3b')]);_0x24caa2['offset']=qs['offset'](_0x51e917[_0xf7aa('0x34')]['offset']);}_0x24caa2[_0xf7aa('0x3c')]=qs[_0xf7aa('0x3d')](_0x51e917['query'][_0xf7aa('0x3d')]);_0x24caa2[_0xf7aa('0x3e')]=qs['filters'](_['pick'](_0x51e917[_0xf7aa('0x34')],_0x360a9d[_0xf7aa('0x36')]),_0x54d59d);if(_0x51e917[_0xf7aa('0x34')][_0xf7aa('0x3f')]){_0x24caa2[_0xf7aa('0x3e')]=_['merge'](_0x24caa2[_0xf7aa('0x3e')],{'$or':_[_0xf7aa('0x2e')](_0x54d59d,function(_0x4bc240){if(_0x4bc240[_0xf7aa('0x31')]!==_0xf7aa('0x40')){var _0xb9a70b={};_0xb9a70b[_0x4bc240[_0xf7aa('0x2b')]]={'$like':'%'+_0x51e917[_0xf7aa('0x34')][_0xf7aa('0x3f')]+'%'};return _0xb9a70b;}})});}_0x24caa2=_[_0xf7aa('0x41')]({},_0x24caa2,_0x51e917[_0xf7aa('0x42')]);var _0x208321={'where':_0x24caa2[_0xf7aa('0x3e')]};return db['VoiceContext'][_0xf7aa('0x22')](_0x208321)[_0xf7aa('0x16')](function(_0x169d62){_0x59e995[_0xf7aa('0x22')]=_0x169d62;if(_0x51e917[_0xf7aa('0x34')]['includeAll']){_0x24caa2[_0xf7aa('0x43')]=[{'all':!![]}];}return db[_0xf7aa('0x2f')][_0xf7aa('0x44')](_0x24caa2);})[_0xf7aa('0x16')](function(_0x11c952){_0x59e995['rows']=_0x11c952;return _0x59e995;})[_0xf7aa('0x16')](respondWithFilteredResult(_0x21631f,_0x24caa2))[_0xf7aa('0x45')](handleError(_0x21631f,null));};exports[_0xf7aa('0x46')]=function(_0x48d060,_0x291992){var _0x3a3b87={'raw':![],'where':{'id':_0x48d060[_0xf7aa('0x47')]['id']}},_0x53efbd={};_0x53efbd['model']=_['keys'](db[_0xf7aa('0x2f')][_0xf7aa('0x30')]);_0x53efbd[_0xf7aa('0x34')]=_[_0xf7aa('0x35')](_0x48d060['query']);_0x53efbd[_0xf7aa('0x36')]=_[_0xf7aa('0x48')](_0x53efbd['model'],_0x53efbd[_0xf7aa('0x34')]);_0x3a3b87[_0xf7aa('0x38')]=_['intersection'](_0x53efbd[_0xf7aa('0x33')],qs['fields'](_0x48d060[_0xf7aa('0x34')]['fields']));_0x3a3b87[_0xf7aa('0x38')]=_0x3a3b87[_0xf7aa('0x38')][_0xf7aa('0x39')]?_0x3a3b87[_0xf7aa('0x38')]:_0x53efbd['model'];if(_0x48d060[_0xf7aa('0x34')][_0xf7aa('0x49')]){_0x3a3b87[_0xf7aa('0x43')]=[{'all':!![]}];}_0x3a3b87=_[_0xf7aa('0x41')]({},_0x3a3b87,_0x48d060[_0xf7aa('0x42')]);return db[_0xf7aa('0x2f')][_0xf7aa('0x4a')](_0x3a3b87)[_0xf7aa('0x16')](handleEntityNotFound(_0x291992,null))[_0xf7aa('0x16')](respondWithResult(_0x291992,null))[_0xf7aa('0x45')](handleError(_0x291992,null));};exports[_0xf7aa('0x4b')]=function(_0x13f74e,_0x2a954a,_0x2e445a){var _0x15af32;return db[_0xf7aa('0x2f')][_0xf7aa('0x4b')](_0x13f74e['body'],{'raw':!![]})[_0xf7aa('0x16')](function(_0x547c78){_0x15af32=_0x547c78;return db[_0xf7aa('0x2f')][_0xf7aa('0x44')]({'raw':!![]});})[_0xf7aa('0x16')](function(_0x267d0c){var _0x18e1eb=fs[_0xf7aa('0x4c')](path['join'](config[_0xf7aa('0x4d')],_0xf7aa('0x4e')),_0xf7aa('0x4f'));var _0x246f27=ejs[_0xf7aa('0x50')](_0x18e1eb,{'contexts':_0x267d0c||[]});fs[_0xf7aa('0x51')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x246f27);})[_0xf7aa('0x16')](function(){return respondWithRpcPromise(_0xf7aa('0x52'),_0xf7aa('0x4b'),{'module':'chan_sip.so'});})['then'](function(){var _0x49be8c=_0x13f74e[_0xf7aa('0x53')][_0xf7aa('0x54')]({'plain':!![]});if(!_0x49be8c)throw new Error(_0xf7aa('0x55'));if(_0x49be8c['role']==='user'){var _0x5ed891=_0x15af32['get']({'plain':!![]});return db[_0xf7aa('0x56')][_0xf7aa('0x4a')]({'where':{'name':'Contexts','userProfileId':_0x49be8c['userProfileId']},'raw':!![]})['then'](function(_0xd6945e){if(_0xd6945e&&_0xd6945e[_0xf7aa('0x57')]===0x0){return db[_0xf7aa('0x58')][_0xf7aa('0x4b')]({'name':_0x5ed891[_0xf7aa('0x2b')],'resourceId':_0x5ed891['id'],'type':_0xd6945e['name'],'sectionId':_0xd6945e['id']},{})['then'](function(){return _0x15af32;});}else{return _0x15af32;}})[_0xf7aa('0x45')](function(_0x380008){logger['error'](_0xf7aa('0x59'),_0x380008);throw _0x380008;});}return _0x15af32;})[_0xf7aa('0x16')](respondWithResult(_0x2a954a,0xc9))[_0xf7aa('0x45')](handleError(_0x2a954a,null));};exports['update']=function(_0x22201d,_0x5c3e88,_0x361797){var _0x2b9336;return db['VoiceContext']['find']({'where':{'id':_0x22201d[_0xf7aa('0x47')]['id']}})['then'](handleEntityNotFound(_0x5c3e88,null))[_0xf7aa('0x16')](saveUpdates(_0x22201d[_0xf7aa('0x5a')],null))[_0xf7aa('0x16')](function(_0x264b44){if(_0x264b44){_0x2b9336=_0x264b44;return db['VoiceContext'][_0xf7aa('0x44')]({'raw':!![]});}})['then'](function(_0xba13a7){var _0x2ac10b=fs[_0xf7aa('0x4c')](path[_0xf7aa('0x5b')](config['root'],'server/files/templates/context.ejs'),_0xf7aa('0x4f'));var _0x2ab6c2=ejs[_0xf7aa('0x50')](_0x2ac10b,{'contexts':_0xba13a7||[]});fs[_0xf7aa('0x51')](_0xf7aa('0x5c'),_0x2ab6c2);})[_0xf7aa('0x16')](function(){return respondWithRpcPromise('Reload',_0xf7aa('0x28'),{'module':_0xf7aa('0x5d')});})['then'](function(){return _0x2b9336;})['then'](respondWithResult(_0x5c3e88,null))[_0xf7aa('0x45')](handleError(_0x5c3e88,null));};exports[_0xf7aa('0x5e')]=function(_0x276cf6,_0x5771b8,_0x55ebe2){var _0x454a45;return db[_0xf7aa('0x2f')][_0xf7aa('0x4a')]({'where':{'id':_0x276cf6['params']['id']}})[_0xf7aa('0x16')](handleEntityNotFound(_0x5771b8,null))[_0xf7aa('0x16')](removeEntity(_0x5771b8,null))[_0xf7aa('0x16')](function(){return db[_0xf7aa('0x2f')][_0xf7aa('0x44')]({'raw':!![]});})[_0xf7aa('0x16')](function(_0x250e3a){var _0x2fb8c5=fs['readFileSync'](path[_0xf7aa('0x5b')](config[_0xf7aa('0x4d')],'server/files/templates/context.ejs'),_0xf7aa('0x4f'));var _0x4d5e79=ejs[_0xf7aa('0x50')](_0x2fb8c5,{'contexts':_0x250e3a});fs[_0xf7aa('0x51')](_0xf7aa('0x5c'),_0x4d5e79);return respondWithRpcPromise('Reload',_0xf7aa('0x5e'),{'module':_0xf7aa('0x5d')});})[_0xf7aa('0x45')](handleError(_0x5771b8,null));};