Built motion from commit (unavailable).|2.5.14
[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 _0x2e31=['utf8','render','writeFileSync','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','/etc/asterisk/extensions_xcally_contexts.conf','Reload','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','mustache','util','path','to-csv','ejs','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','request\x20sent','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceContext,\x20%s,\x20%s','message','info','result','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','save','update','destroy','get','Contexts','UserProfileResource','stack','name','index','VoiceContext','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','map','VIRTUAL','options','count','includeAll','findAll','rows','catch','show','params','include','find','create','body','readFileSync','join','root','server/files/templates/context.ejs'];(function(_0x3b76e9,_0x39efb2){var _0x43489c=function(_0x1040a9){while(--_0x1040a9){_0x3b76e9['push'](_0x3b76e9['shift']());}};_0x43489c(++_0x39efb2);}(_0x2e31,0x145));var _0x12e3=function(_0x1f86c8,_0x44d603){_0x1f86c8=_0x1f86c8-0x0;var _0x248fd8=_0x2e31[_0x1f86c8];return _0x248fd8;};'use strict';var pdf=require(_0x12e3('0x0'));var emlformat=require(_0x12e3('0x1'));var rimraf=require(_0x12e3('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x12e3('0x3'));var rp=require(_0x12e3('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x12e3('0x5'));var util=require(_0x12e3('0x6'));var path=require(_0x12e3('0x7'));var sox=require('sox');var csv=require(_0x12e3('0x8'));var ejs=require(_0x12e3('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x12e3('0xa'));var jsforce=require(_0x12e3('0xb'));var deskjs=require(_0x12e3('0xc'));var toCsv=require(_0x12e3('0x8'));var querystring=require('querystring');var Papa=require(_0x12e3('0xd'));var Redis=require(_0x12e3('0xe'));var authService=require(_0x12e3('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x12e3('0x10'));var logger=require(_0x12e3('0x11'))(_0x12e3('0x12'));var utils=require(_0x12e3('0x13'));var config=require(_0x12e3('0x14'));var licenseUtil=require(_0x12e3('0x15'));var db=require(_0x12e3('0x16'))['db'];var jayson=require(_0x12e3('0x17'));var client=jayson[_0x12e3('0x18')][_0x12e3('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x247631,_0x4320d3,_0x5a18bb,_0x2b5352){return new BPromise(function(_0x19de67,_0xd9f80f){var _0x5f315a=_0x2b5352||client;return _0x5f315a[_0x12e3('0x1a')](_0x247631,_0x5a18bb)[_0x12e3('0x1b')](function(_0x4a29e8){logger['info']('VoiceContext,\x20%s,\x20%s',_0x4320d3,_0x12e3('0x1c'));logger['debug'](_0x12e3('0x1d'),_0x4320d3,_0x12e3('0x1c'),JSON[_0x12e3('0x1e')](_0x4a29e8));if(_0x4a29e8[_0x12e3('0x1f')]){if(_0x4a29e8[_0x12e3('0x1f')][_0x12e3('0x20')]===0x1f4){logger['error'](_0x12e3('0x21'),_0x4320d3,_0x4a29e8[_0x12e3('0x1f')]['message']);return _0xd9f80f(_0x4a29e8['error']['message']);}logger[_0x12e3('0x1f')]('VoiceContext,\x20%s,\x20%s',_0x4320d3,_0x4a29e8[_0x12e3('0x1f')][_0x12e3('0x22')]);return _0x19de67(_0x4a29e8['error']['message']);}else{logger[_0x12e3('0x23')](_0x12e3('0x21'),_0x4320d3,_0x12e3('0x1c'));_0x19de67(_0x4a29e8[_0x12e3('0x24')]['message']);}})['catch'](function(_0x3e03d8){logger[_0x12e3('0x1f')](_0x12e3('0x21'),_0x4320d3,_0x3e03d8);_0xd9f80f(_0x3e03d8);});});}function respondWithStatusCode(_0x2705e8,_0x2cf78a){_0x2cf78a=_0x2cf78a||0xcc;return function(_0x553982){if(_0x553982){return _0x2705e8[_0x12e3('0x25')](_0x2cf78a);}return _0x2705e8[_0x12e3('0x26')](_0x2cf78a)[_0x12e3('0x27')]();};}function respondWithResult(_0x2218e7,_0x43a59f){_0x43a59f=_0x43a59f||0xc8;return function(_0x3361d2){if(_0x3361d2){return _0x2218e7['status'](_0x43a59f)[_0x12e3('0x28')](_0x3361d2);}};}function respondWithFilteredResult(_0x1c5344,_0x4213db){return function(_0x42765f){if(_0x42765f){var _0x4d1792=_0x42765f['count'],_0x1609ea=_0x4213db[_0x12e3('0x29')],_0x29880d=_0x4213db[_0x12e3('0x29')]+_0x4213db[_0x12e3('0x2a')],_0x2293ec;if(_0x29880d>=_0x4d1792){_0x29880d=_0x4d1792;_0x2293ec=0xc8;}else{_0x2293ec=0xce;}_0x1c5344[_0x12e3('0x26')](_0x2293ec);return _0x1c5344['set'](_0x12e3('0x2b'),_0x1609ea+'-'+_0x29880d+'/'+_0x4d1792)[_0x12e3('0x28')](_0x42765f);}return null;};}function patchUpdates(_0x40aefe){return function(_0x546f26){try{jsonpatch[_0x12e3('0x2c')](_0x546f26,_0x40aefe,!![]);}catch(_0x531923){return BPromise[_0x12e3('0x2d')](_0x531923);}return _0x546f26[_0x12e3('0x2e')]();};}function saveUpdates(_0x286676,_0x1b3b79){return function(_0x18fe12){if(_0x18fe12){return _0x18fe12[_0x12e3('0x2f')](_0x286676)['then'](function(_0x25219e){return _0x25219e;});}return null;};}function removeEntity(_0x2609c4,_0x5d731c){return function(_0xf4647c){if(_0xf4647c){return _0xf4647c[_0x12e3('0x30')]()['then'](function(){var _0x3012c9=_0xf4647c[_0x12e3('0x31')]({'plain':!![]});var _0x5afd7b=_0x12e3('0x32');return db[_0x12e3('0x33')][_0x12e3('0x30')]({'where':{'type':_0x5afd7b,'resourceId':_0x3012c9['id']}})['then'](function(){return _0xf4647c;});})[_0x12e3('0x1b')](function(){_0x2609c4[_0x12e3('0x26')](0xcc)[_0x12e3('0x27')]();});}};}function handleEntityNotFound(_0xc4a3d1,_0x1cd7e9){return function(_0x418952){if(!_0x418952){_0xc4a3d1[_0x12e3('0x25')](0x194);}return _0x418952;};}function handleError(_0x3a7a8b,_0x31c6e2){_0x31c6e2=_0x31c6e2||0x1f4;return function(_0x273d2f){logger[_0x12e3('0x1f')](_0x273d2f[_0x12e3('0x34')]);if(_0x273d2f[_0x12e3('0x35')]){delete _0x273d2f['name'];}_0x3a7a8b[_0x12e3('0x26')](_0x31c6e2)['send'](_0x273d2f);};}exports[_0x12e3('0x36')]=function(_0x56fde2,_0x14f0d1){var _0x1a29b1={},_0x584cc5={},_0x61a053={'count':0x0,'rows':[]};var _0x31910f=_['map'](db[_0x12e3('0x37')][_0x12e3('0x38')],function(_0x1f1ed3){return{'name':_0x1f1ed3['fieldName'],'type':_0x1f1ed3[_0x12e3('0x39')][_0x12e3('0x3a')]};});_0x584cc5[_0x12e3('0x3b')]=_['map'](_0x31910f,_0x12e3('0x35'));_0x584cc5['query']=_['keys'](_0x56fde2[_0x12e3('0x3c')]);_0x584cc5[_0x12e3('0x3d')]=_[_0x12e3('0x3e')](_0x584cc5['model'],_0x584cc5['query']);_0x1a29b1[_0x12e3('0x3f')]=_['intersection'](_0x584cc5[_0x12e3('0x3b')],qs['fields'](_0x56fde2[_0x12e3('0x3c')][_0x12e3('0x40')]));_0x1a29b1[_0x12e3('0x3f')]=_0x1a29b1['attributes'][_0x12e3('0x41')]?_0x1a29b1[_0x12e3('0x3f')]:_0x584cc5[_0x12e3('0x3b')];if(!_0x56fde2[_0x12e3('0x3c')][_0x12e3('0x42')](_0x12e3('0x43'))){_0x1a29b1['limit']=qs[_0x12e3('0x2a')](_0x56fde2[_0x12e3('0x3c')]['limit']);_0x1a29b1[_0x12e3('0x29')]=qs[_0x12e3('0x29')](_0x56fde2['query'][_0x12e3('0x29')]);}_0x1a29b1[_0x12e3('0x44')]=qs[_0x12e3('0x45')](_0x56fde2[_0x12e3('0x3c')][_0x12e3('0x45')]);_0x1a29b1[_0x12e3('0x46')]=qs[_0x12e3('0x3d')](_['pick'](_0x56fde2[_0x12e3('0x3c')],_0x584cc5[_0x12e3('0x3d')]),_0x31910f);if(_0x56fde2[_0x12e3('0x3c')][_0x12e3('0x47')]){_0x1a29b1[_0x12e3('0x46')]=_[_0x12e3('0x48')](_0x1a29b1[_0x12e3('0x46')],{'$or':_[_0x12e3('0x49')](_0x31910f,function(_0x5539f7){if(_0x5539f7['type']!==_0x12e3('0x4a')){var _0x2db2d1={};_0x2db2d1[_0x5539f7['name']]={'$like':'%'+_0x56fde2[_0x12e3('0x3c')]['filter']+'%'};return _0x2db2d1;}})});}_0x1a29b1=_[_0x12e3('0x48')]({},_0x1a29b1,_0x56fde2[_0x12e3('0x4b')]);var _0x2b75aa={'where':_0x1a29b1[_0x12e3('0x46')]};return db[_0x12e3('0x37')][_0x12e3('0x4c')](_0x2b75aa)['then'](function(_0x4f9a5e){_0x61a053['count']=_0x4f9a5e;if(_0x56fde2[_0x12e3('0x3c')][_0x12e3('0x4d')]){_0x1a29b1['include']=[{'all':!![]}];}return db['VoiceContext'][_0x12e3('0x4e')](_0x1a29b1);})['then'](function(_0x117af4){_0x61a053[_0x12e3('0x4f')]=_0x117af4;return _0x61a053;})[_0x12e3('0x1b')](respondWithFilteredResult(_0x14f0d1,_0x1a29b1))[_0x12e3('0x50')](handleError(_0x14f0d1,null));};exports[_0x12e3('0x51')]=function(_0x1b129a,_0x20fb60){var _0x5541db={'raw':![],'where':{'id':_0x1b129a[_0x12e3('0x52')]['id']}},_0x193ef7={};_0x193ef7['model']=_['keys'](db[_0x12e3('0x37')][_0x12e3('0x38')]);_0x193ef7[_0x12e3('0x3c')]=_['keys'](_0x1b129a[_0x12e3('0x3c')]);_0x193ef7[_0x12e3('0x3d')]=_[_0x12e3('0x3e')](_0x193ef7['model'],_0x193ef7[_0x12e3('0x3c')]);_0x5541db[_0x12e3('0x3f')]=_[_0x12e3('0x3e')](_0x193ef7['model'],qs[_0x12e3('0x40')](_0x1b129a[_0x12e3('0x3c')][_0x12e3('0x40')]));_0x5541db[_0x12e3('0x3f')]=_0x5541db[_0x12e3('0x3f')][_0x12e3('0x41')]?_0x5541db[_0x12e3('0x3f')]:_0x193ef7[_0x12e3('0x3b')];if(_0x1b129a[_0x12e3('0x3c')][_0x12e3('0x4d')]){_0x5541db[_0x12e3('0x53')]=[{'all':!![]}];}_0x5541db=_[_0x12e3('0x48')]({},_0x5541db,_0x1b129a[_0x12e3('0x4b')]);return db[_0x12e3('0x37')][_0x12e3('0x54')](_0x5541db)['then'](handleEntityNotFound(_0x20fb60,null))['then'](respondWithResult(_0x20fb60,null))[_0x12e3('0x50')](handleError(_0x20fb60,null));};exports[_0x12e3('0x55')]=function(_0x37d793,_0x125013,_0x18bda5){var _0x3c17ec;return db[_0x12e3('0x37')]['create'](_0x37d793[_0x12e3('0x56')],{'raw':!![]})[_0x12e3('0x1b')](function(_0x5e0a3d){_0x3c17ec=_0x5e0a3d;return db[_0x12e3('0x37')][_0x12e3('0x4e')]({'raw':!![]});})['then'](function(_0x4f0e64){var _0x23ceb2=fs[_0x12e3('0x57')](path[_0x12e3('0x58')](config[_0x12e3('0x59')],_0x12e3('0x5a')),_0x12e3('0x5b'));var _0x39955f=ejs[_0x12e3('0x5c')](_0x23ceb2,{'contexts':_0x4f0e64||[]});fs[_0x12e3('0x5d')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x39955f);})[_0x12e3('0x1b')](function(){return respondWithRpcPromise('Reload',_0x12e3('0x55'),{'module':_0x12e3('0x5e')});})[_0x12e3('0x1b')](function(){var _0x41d9fe=_0x37d793[_0x12e3('0x5f')][_0x12e3('0x31')]({'plain':!![]});if(!_0x41d9fe)throw new Error(_0x12e3('0x60'));if(_0x41d9fe[_0x12e3('0x61')]===_0x12e3('0x5f')){var _0x189b23=_0x3c17ec[_0x12e3('0x31')]({'plain':!![]});return db[_0x12e3('0x62')][_0x12e3('0x54')]({'where':{'name':_0x12e3('0x32'),'userProfileId':_0x41d9fe[_0x12e3('0x63')]},'raw':!![]})['then'](function(_0x2fd3ba){if(_0x2fd3ba&&_0x2fd3ba[_0x12e3('0x64')]===0x0){return db['UserProfileResource'][_0x12e3('0x55')]({'name':_0x189b23[_0x12e3('0x35')],'resourceId':_0x189b23['id'],'type':_0x2fd3ba[_0x12e3('0x35')],'sectionId':_0x2fd3ba['id']},{})['then'](function(){return _0x3c17ec;});}else{return _0x3c17ec;}})[_0x12e3('0x50')](function(_0x2414d5){logger[_0x12e3('0x1f')](_0x12e3('0x65'),_0x2414d5);throw _0x2414d5;});}return _0x3c17ec;})['then'](respondWithResult(_0x125013,0xc9))[_0x12e3('0x50')](handleError(_0x125013,null));};exports[_0x12e3('0x2f')]=function(_0x1e0a81,_0x570d5e,_0x154734){var _0x1f98b0;return db['VoiceContext'][_0x12e3('0x54')]({'where':{'id':_0x1e0a81[_0x12e3('0x52')]['id']}})[_0x12e3('0x1b')](handleEntityNotFound(_0x570d5e,null))[_0x12e3('0x1b')](saveUpdates(_0x1e0a81[_0x12e3('0x56')],null))[_0x12e3('0x1b')](function(_0xa1527c){if(_0xa1527c){_0x1f98b0=_0xa1527c;return db['VoiceContext'][_0x12e3('0x4e')]({'raw':!![]});}})[_0x12e3('0x1b')](function(_0x485098){var _0x45bb1b=fs[_0x12e3('0x57')](path[_0x12e3('0x58')](config[_0x12e3('0x59')],_0x12e3('0x5a')),'utf8');var _0x44dd0d=ejs['render'](_0x45bb1b,{'contexts':_0x485098||[]});fs['writeFileSync'](_0x12e3('0x66'),_0x44dd0d);})[_0x12e3('0x1b')](function(){return respondWithRpcPromise(_0x12e3('0x67'),_0x12e3('0x2f'),{'module':_0x12e3('0x5e')});})['then'](function(){return _0x1f98b0;})[_0x12e3('0x1b')](respondWithResult(_0x570d5e,null))[_0x12e3('0x50')](handleError(_0x570d5e,null));};exports['destroy']=function(_0x25d281,_0x1438d1,_0x2bc574){var _0xd45690;return db[_0x12e3('0x37')]['find']({'where':{'id':_0x25d281[_0x12e3('0x52')]['id']}})[_0x12e3('0x1b')](handleEntityNotFound(_0x1438d1,null))[_0x12e3('0x1b')](removeEntity(_0x1438d1,null))[_0x12e3('0x1b')](function(){return db[_0x12e3('0x37')]['findAll']({'raw':!![]});})[_0x12e3('0x1b')](function(_0xe73106){var _0x2d8d37=fs[_0x12e3('0x57')](path['join'](config[_0x12e3('0x59')],_0x12e3('0x5a')),'utf8');var _0x408987=ejs[_0x12e3('0x5c')](_0x2d8d37,{'contexts':_0xe73106});fs['writeFileSync']('/etc/asterisk/extensions_xcally_contexts.conf',_0x408987);return respondWithRpcPromise(_0x12e3('0x67'),_0x12e3('0x30'),{'module':_0x12e3('0x5e')});})[_0x12e3('0x50')](handleError(_0x1438d1,null));};