Built motion from commit (unavailable).|2.5.11
[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 _0x782e=['../../config/utils','../../config/environment','../../config/license/util','jayson/promise','http','then','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','sendStatus','status','end','json','count','offset','apply','reject','save','update','destroy','get','Contexts','UserProfileResource','stack','name','send','index','map','VoiceContext','type','key','model','query','filters','intersection','attributes','fields','length','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','rawAttributes','keys','create','body','readFileSync','join','root','utf8','writeFileSync','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','server/files/templates/context.ejs','render','/etc/asterisk/extensions_xcally_contexts.conf','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','ejs','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api'];(function(_0x2dd7a9,_0x442223){var _0x194020=function(_0x2b31d1){while(--_0x2b31d1){_0x2dd7a9['push'](_0x2dd7a9['shift']());}};_0x194020(++_0x442223);}(_0x782e,0xb9));var _0xe782=function(_0xc56818,_0x3cceba){_0xc56818=_0xc56818-0x0;var _0xe40fc4=_0x782e[_0xc56818];return _0xe40fc4;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xe782('0x0'));var zipdir=require(_0xe782('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe782('0x2'));var moment=require(_0xe782('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xe782('0x4'));var util=require(_0xe782('0x5'));var path=require(_0xe782('0x6'));var sox=require(_0xe782('0x7'));var csv=require('to-csv');var ejs=require(_0xe782('0x8'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xe782('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xe782('0xa'));var toCsv=require(_0xe782('0xb'));var querystring=require(_0xe782('0xc'));var Papa=require(_0xe782('0xd'));var Redis=require(_0xe782('0xe'));var authService=require(_0xe782('0xf'));var qs=require(_0xe782('0x10'));var as=require(_0xe782('0x11'));var hardwareService=require(_0xe782('0x12'));var logger=require(_0xe782('0x13'))(_0xe782('0x14'));var utils=require(_0xe782('0x15'));var config=require(_0xe782('0x16'));var licenseUtil=require(_0xe782('0x17'));var db=require('../../mysqldb')['db'];var jayson=require(_0xe782('0x18'));var client=jayson['client'][_0xe782('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x356c18,_0x452468,_0x395030,_0xc94acf){return new BPromise(function(_0xd57d73,_0x4e1c25){var _0x5a663c=_0xc94acf||client;return _0x5a663c['request'](_0x356c18,_0x395030)[_0xe782('0x1a')](function(_0xb2c79d){logger['info'](_0xe782('0x1b'),_0x452468,_0xe782('0x1c'));logger[_0xe782('0x1d')](_0xe782('0x1e'),_0x452468,_0xe782('0x1c'),JSON[_0xe782('0x1f')](_0xb2c79d));if(_0xb2c79d[_0xe782('0x20')]){if(_0xb2c79d[_0xe782('0x20')][_0xe782('0x21')]===0x1f4){logger[_0xe782('0x20')](_0xe782('0x1b'),_0x452468,_0xb2c79d[_0xe782('0x20')]['message']);return _0x4e1c25(_0xb2c79d[_0xe782('0x20')][_0xe782('0x22')]);}logger[_0xe782('0x20')]('VoiceContext,\x20%s,\x20%s',_0x452468,_0xb2c79d[_0xe782('0x20')]['message']);return _0xd57d73(_0xb2c79d[_0xe782('0x20')]['message']);}else{logger[_0xe782('0x23')](_0xe782('0x1b'),_0x452468,_0xe782('0x1c'));_0xd57d73(_0xb2c79d['result'][_0xe782('0x22')]);}})[_0xe782('0x24')](function(_0x143c64){logger[_0xe782('0x20')]('VoiceContext,\x20%s,\x20%s',_0x452468,_0x143c64);_0x4e1c25(_0x143c64);});});}function respondWithStatusCode(_0x657761,_0x5787c5){_0x5787c5=_0x5787c5||0xcc;return function(_0x49a47){if(_0x49a47){return _0x657761[_0xe782('0x25')](_0x5787c5);}return _0x657761[_0xe782('0x26')](_0x5787c5)[_0xe782('0x27')]();};}function respondWithResult(_0x382c9c,_0x16bcb6){_0x16bcb6=_0x16bcb6||0xc8;return function(_0x126899){if(_0x126899){return _0x382c9c[_0xe782('0x26')](_0x16bcb6)[_0xe782('0x28')](_0x126899);}};}function respondWithFilteredResult(_0x2fb1c1,_0x477b5d){return function(_0x2e57d2){if(_0x2e57d2){var _0x3e9999=_0x2e57d2[_0xe782('0x29')],_0x2502e9=_0x477b5d[_0xe782('0x2a')],_0x5f45bb=_0x477b5d['offset']+_0x477b5d['limit'],_0x294c37;if(_0x5f45bb>=_0x3e9999){_0x5f45bb=_0x3e9999;_0x294c37=0xc8;}else{_0x294c37=0xce;}_0x2fb1c1[_0xe782('0x26')](_0x294c37);return _0x2fb1c1['set']('Content-Range',_0x2502e9+'-'+_0x5f45bb+'/'+_0x3e9999)[_0xe782('0x28')](_0x2e57d2);}return null;};}function patchUpdates(_0x3e9125){return function(_0x4f0efb){try{jsonpatch[_0xe782('0x2b')](_0x4f0efb,_0x3e9125,!![]);}catch(_0x14bf9c){return BPromise[_0xe782('0x2c')](_0x14bf9c);}return _0x4f0efb[_0xe782('0x2d')]();};}function saveUpdates(_0x1dee67,_0x3d9b57){return function(_0xfa2d2f){if(_0xfa2d2f){return _0xfa2d2f[_0xe782('0x2e')](_0x1dee67)[_0xe782('0x1a')](function(_0x18f608){return _0x18f608;});}return null;};}function removeEntity(_0x453614,_0x422b7b){return function(_0x30d6a5){if(_0x30d6a5){return _0x30d6a5[_0xe782('0x2f')]()[_0xe782('0x1a')](function(){var _0x296742=_0x30d6a5[_0xe782('0x30')]({'plain':!![]});var _0x36bada=_0xe782('0x31');return db[_0xe782('0x32')][_0xe782('0x2f')]({'where':{'type':_0x36bada,'resourceId':_0x296742['id']}})[_0xe782('0x1a')](function(){return _0x30d6a5;});})[_0xe782('0x1a')](function(){_0x453614[_0xe782('0x26')](0xcc)[_0xe782('0x27')]();});}};}function handleEntityNotFound(_0x3fe268,_0x58f06c){return function(_0x414c15){if(!_0x414c15){_0x3fe268[_0xe782('0x25')](0x194);}return _0x414c15;};}function handleError(_0x28b160,_0x16039f){_0x16039f=_0x16039f||0x1f4;return function(_0x5c6770){logger[_0xe782('0x20')](_0x5c6770[_0xe782('0x33')]);if(_0x5c6770[_0xe782('0x34')]){delete _0x5c6770[_0xe782('0x34')];}_0x28b160[_0xe782('0x26')](_0x16039f)[_0xe782('0x35')](_0x5c6770);};}exports[_0xe782('0x36')]=function(_0x30cba7,_0x49f6f9){var _0x1c42b1={},_0x116ac5={},_0x84f771={'count':0x0,'rows':[]};var _0x35f41b=_[_0xe782('0x37')](db[_0xe782('0x38')]['rawAttributes'],function(_0xab8272){return{'name':_0xab8272['fieldName'],'type':_0xab8272[_0xe782('0x39')][_0xe782('0x3a')]};});_0x116ac5[_0xe782('0x3b')]=_['map'](_0x35f41b,'name');_0x116ac5['query']=_['keys'](_0x30cba7[_0xe782('0x3c')]);_0x116ac5[_0xe782('0x3d')]=_[_0xe782('0x3e')](_0x116ac5[_0xe782('0x3b')],_0x116ac5[_0xe782('0x3c')]);_0x1c42b1[_0xe782('0x3f')]=_[_0xe782('0x3e')](_0x116ac5[_0xe782('0x3b')],qs['fields'](_0x30cba7[_0xe782('0x3c')][_0xe782('0x40')]));_0x1c42b1[_0xe782('0x3f')]=_0x1c42b1[_0xe782('0x3f')][_0xe782('0x41')]?_0x1c42b1['attributes']:_0x116ac5[_0xe782('0x3b')];if(!_0x30cba7[_0xe782('0x3c')]['hasOwnProperty'](_0xe782('0x42'))){_0x1c42b1[_0xe782('0x43')]=qs[_0xe782('0x43')](_0x30cba7[_0xe782('0x3c')][_0xe782('0x43')]);_0x1c42b1['offset']=qs['offset'](_0x30cba7[_0xe782('0x3c')][_0xe782('0x2a')]);}_0x1c42b1[_0xe782('0x44')]=qs[_0xe782('0x45')](_0x30cba7[_0xe782('0x3c')][_0xe782('0x45')]);_0x1c42b1[_0xe782('0x46')]=qs[_0xe782('0x3d')](_[_0xe782('0x47')](_0x30cba7['query'],_0x116ac5[_0xe782('0x3d')]),_0x35f41b);if(_0x30cba7[_0xe782('0x3c')][_0xe782('0x48')]){_0x1c42b1['where']=_[_0xe782('0x49')](_0x1c42b1[_0xe782('0x46')],{'$or':_[_0xe782('0x37')](_0x35f41b,function(_0x362a8e){if(_0x362a8e[_0xe782('0x39')]!==_0xe782('0x4a')){var _0xa04d4e={};_0xa04d4e[_0x362a8e['name']]={'$like':'%'+_0x30cba7[_0xe782('0x3c')][_0xe782('0x48')]+'%'};return _0xa04d4e;}})});}_0x1c42b1=_[_0xe782('0x49')]({},_0x1c42b1,_0x30cba7[_0xe782('0x4b')]);var _0x2cf11f={'where':_0x1c42b1[_0xe782('0x46')]};return db[_0xe782('0x38')][_0xe782('0x29')](_0x2cf11f)['then'](function(_0x2d0238){_0x84f771[_0xe782('0x29')]=_0x2d0238;if(_0x30cba7[_0xe782('0x3c')][_0xe782('0x4c')]){_0x1c42b1[_0xe782('0x4d')]=[{'all':!![]}];}return db[_0xe782('0x38')][_0xe782('0x4e')](_0x1c42b1);})[_0xe782('0x1a')](function(_0x455186){_0x84f771[_0xe782('0x4f')]=_0x455186;return _0x84f771;})[_0xe782('0x1a')](respondWithFilteredResult(_0x49f6f9,_0x1c42b1))[_0xe782('0x24')](handleError(_0x49f6f9,null));};exports[_0xe782('0x50')]=function(_0x50fbd2,_0x368ff8){var _0x42d9d9={'raw':![],'where':{'id':_0x50fbd2['params']['id']}},_0x181ed5={};_0x181ed5['model']=_['keys'](db['VoiceContext'][_0xe782('0x51')]);_0x181ed5[_0xe782('0x3c')]=_[_0xe782('0x52')](_0x50fbd2[_0xe782('0x3c')]);_0x181ed5['filters']=_[_0xe782('0x3e')](_0x181ed5[_0xe782('0x3b')],_0x181ed5['query']);_0x42d9d9[_0xe782('0x3f')]=_[_0xe782('0x3e')](_0x181ed5['model'],qs[_0xe782('0x40')](_0x50fbd2[_0xe782('0x3c')][_0xe782('0x40')]));_0x42d9d9[_0xe782('0x3f')]=_0x42d9d9[_0xe782('0x3f')][_0xe782('0x41')]?_0x42d9d9['attributes']:_0x181ed5[_0xe782('0x3b')];if(_0x50fbd2[_0xe782('0x3c')]['includeAll']){_0x42d9d9[_0xe782('0x4d')]=[{'all':!![]}];}_0x42d9d9=_[_0xe782('0x49')]({},_0x42d9d9,_0x50fbd2[_0xe782('0x4b')]);return db['VoiceContext']['find'](_0x42d9d9)[_0xe782('0x1a')](handleEntityNotFound(_0x368ff8,null))['then'](respondWithResult(_0x368ff8,null))['catch'](handleError(_0x368ff8,null));};exports[_0xe782('0x53')]=function(_0x3e0892,_0x4a5866,_0x509303){var _0x1f9c5a;return db[_0xe782('0x38')][_0xe782('0x53')](_0x3e0892[_0xe782('0x54')],{'raw':!![]})[_0xe782('0x1a')](function(_0x10c9bd){_0x1f9c5a=_0x10c9bd;return db[_0xe782('0x38')][_0xe782('0x4e')]({'raw':!![]});})[_0xe782('0x1a')](function(_0x5008ee){var _0x224484=fs[_0xe782('0x55')](path[_0xe782('0x56')](config[_0xe782('0x57')],'server/files/templates/context.ejs'),_0xe782('0x58'));var _0x5c16e0=ejs['render'](_0x224484,{'contexts':_0x5008ee||[]});fs[_0xe782('0x59')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x5c16e0);})[_0xe782('0x1a')](function(){return respondWithRpcPromise(_0xe782('0x5a'),_0xe782('0x53'),{'module':_0xe782('0x5b')});})['then'](function(){var _0x2a3a5e=_0x3e0892[_0xe782('0x5c')]['get']({'plain':!![]});if(!_0x2a3a5e)throw new Error(_0xe782('0x5d'));if(_0x2a3a5e['role']===_0xe782('0x5c')){var _0x1296fa=_0x1f9c5a[_0xe782('0x30')]({'plain':!![]});return db[_0xe782('0x5e')][_0xe782('0x5f')]({'where':{'name':_0xe782('0x31'),'userProfileId':_0x2a3a5e[_0xe782('0x60')]},'raw':!![]})[_0xe782('0x1a')](function(_0xb8aa8a){if(_0xb8aa8a&&_0xb8aa8a[_0xe782('0x61')]===0x0){return db[_0xe782('0x32')][_0xe782('0x53')]({'name':_0x1296fa[_0xe782('0x34')],'resourceId':_0x1296fa['id'],'type':_0xb8aa8a[_0xe782('0x34')],'sectionId':_0xb8aa8a['id']},{})[_0xe782('0x1a')](function(){return _0x1f9c5a;});}else{return _0x1f9c5a;}})[_0xe782('0x24')](function(_0x283e94){logger[_0xe782('0x20')](_0xe782('0x62'),_0x283e94);throw _0x283e94;});}return _0x1f9c5a;})['then'](respondWithResult(_0x4a5866,0xc9))[_0xe782('0x24')](handleError(_0x4a5866,null));};exports[_0xe782('0x2e')]=function(_0x15325f,_0x3678d4,_0x4ba1d4){var _0x4f2931;return db['VoiceContext'][_0xe782('0x5f')]({'where':{'id':_0x15325f[_0xe782('0x63')]['id']}})[_0xe782('0x1a')](handleEntityNotFound(_0x3678d4,null))[_0xe782('0x1a')](saveUpdates(_0x15325f[_0xe782('0x54')],null))[_0xe782('0x1a')](function(_0xc6fdc4){if(_0xc6fdc4){_0x4f2931=_0xc6fdc4;return db[_0xe782('0x38')][_0xe782('0x4e')]({'raw':!![]});}})[_0xe782('0x1a')](function(_0x448ebb){var _0x4a20a2=fs[_0xe782('0x55')](path[_0xe782('0x56')](config[_0xe782('0x57')],'server/files/templates/context.ejs'),_0xe782('0x58'));var _0xab2133=ejs['render'](_0x4a20a2,{'contexts':_0x448ebb||[]});fs[_0xe782('0x59')]('/etc/asterisk/extensions_xcally_contexts.conf',_0xab2133);})['then'](function(){return respondWithRpcPromise('Reload',_0xe782('0x2e'),{'module':'chan_sip.so'});})[_0xe782('0x1a')](function(){return _0x4f2931;})['then'](respondWithResult(_0x3678d4,null))[_0xe782('0x24')](handleError(_0x3678d4,null));};exports[_0xe782('0x2f')]=function(_0x483640,_0x725020,_0x5dd34a){var _0x189132;return db[_0xe782('0x38')][_0xe782('0x5f')]({'where':{'id':_0x483640[_0xe782('0x63')]['id']}})[_0xe782('0x1a')](handleEntityNotFound(_0x725020,null))[_0xe782('0x1a')](removeEntity(_0x725020,null))[_0xe782('0x1a')](function(){return db[_0xe782('0x38')][_0xe782('0x4e')]({'raw':!![]});})[_0xe782('0x1a')](function(_0x129a12){var _0x1e9fe3=fs[_0xe782('0x55')](path[_0xe782('0x56')](config[_0xe782('0x57')],_0xe782('0x64')),_0xe782('0x58'));var _0x52bb3c=ejs[_0xe782('0x65')](_0x1e9fe3,{'contexts':_0x129a12});fs[_0xe782('0x59')](_0xe782('0x66'),_0x52bb3c);return respondWithRpcPromise('Reload',_0xe782('0x2f'),{'module':'chan_sip.so'});})[_0xe782('0x24')](handleError(_0x725020,null));};