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 _0x8a9a=['writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','user','role','UserProfileSection','autoAssociation','body','server/files/templates/context.ejs','utf8','Reload','chan_sip.so','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','request','VoiceContext,\x20%s,\x20%s','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','request\x20sent','result','catch','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','get','Contexts','UserProfileResource','sendStatus','name','map','VoiceContext','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','VIRTUAL','options','includeAll','findAll','rows','show','params','include','merge','find','create','readFileSync','join','root','render'];(function(_0x5329c5,_0x2bcffc){var _0x39cf4e=function(_0x28a461){while(--_0x28a461){_0x5329c5['push'](_0x5329c5['shift']());}};_0x39cf4e(++_0x2bcffc);}(_0x8a9a,0x193));var _0xa8a9=function(_0x3d42d8,_0x4cffaa){_0x3d42d8=_0x3d42d8-0x0;var _0x27fc41=_0x8a9a[_0x3d42d8];return _0x27fc41;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xa8a9('0x0'));var zipdir=require(_0xa8a9('0x1'));var jsonpatch=require(_0xa8a9('0x2'));var rp=require('request-promise');var moment=require(_0xa8a9('0x3'));var BPromise=require(_0xa8a9('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xa8a9('0x5'));var sox=require(_0xa8a9('0x6'));var csv=require(_0xa8a9('0x7'));var ejs=require(_0xa8a9('0x8'));var fs=require('fs');var _=require(_0xa8a9('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa8a9('0xa'));var deskjs=require(_0xa8a9('0xb'));var toCsv=require(_0xa8a9('0x7'));var querystring=require(_0xa8a9('0xc'));var Papa=require(_0xa8a9('0xd'));var Redis=require(_0xa8a9('0xe'));var authService=require(_0xa8a9('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xa8a9('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa8a9('0x11'))('api');var utils=require(_0xa8a9('0x12'));var config=require(_0xa8a9('0x13'));var licenseUtil=require(_0xa8a9('0x14'));var db=require(_0xa8a9('0x15'))['db'];var jayson=require(_0xa8a9('0x16'));var client=jayson[_0xa8a9('0x17')]['http']({'port':0x232a});function respondWithRpcPromise(_0x493884,_0x42b897,_0x48af30,_0x3bb559){return new BPromise(function(_0x34bec9,_0x3a0e08){var _0xf662a6=_0x3bb559||client;return _0xf662a6[_0xa8a9('0x18')](_0x493884,_0x48af30)['then'](function(_0x3593fa){logger['info'](_0xa8a9('0x19'),_0x42b897,'request\x20sent');logger[_0xa8a9('0x1a')](_0xa8a9('0x1b'),_0x42b897,'request\x20sent',JSON[_0xa8a9('0x1c')](_0x3593fa));if(_0x3593fa['error']){if(_0x3593fa[_0xa8a9('0x1d')][_0xa8a9('0x1e')]===0x1f4){logger[_0xa8a9('0x1d')](_0xa8a9('0x19'),_0x42b897,_0x3593fa['error']['message']);return _0x3a0e08(_0x3593fa[_0xa8a9('0x1d')]['message']);}logger[_0xa8a9('0x1d')](_0xa8a9('0x19'),_0x42b897,_0x3593fa[_0xa8a9('0x1d')][_0xa8a9('0x1f')]);return _0x34bec9(_0x3593fa[_0xa8a9('0x1d')][_0xa8a9('0x1f')]);}else{logger[_0xa8a9('0x20')](_0xa8a9('0x19'),_0x42b897,_0xa8a9('0x21'));_0x34bec9(_0x3593fa[_0xa8a9('0x22')][_0xa8a9('0x1f')]);}})[_0xa8a9('0x23')](function(_0x433a63){logger['error']('VoiceContext,\x20%s,\x20%s',_0x42b897,_0x433a63);_0x3a0e08(_0x433a63);});});}function respondWithStatusCode(_0x4343f4,_0xa4c41a){_0xa4c41a=_0xa4c41a||0xcc;return function(_0x32e784){if(_0x32e784){return _0x4343f4['sendStatus'](_0xa4c41a);}return _0x4343f4[_0xa8a9('0x24')](_0xa4c41a)[_0xa8a9('0x25')]();};}function respondWithResult(_0x296deb,_0x233fe1){_0x233fe1=_0x233fe1||0xc8;return function(_0x488791){if(_0x488791){return _0x296deb[_0xa8a9('0x24')](_0x233fe1)[_0xa8a9('0x26')](_0x488791);}};}function respondWithFilteredResult(_0x2f7a56,_0x1aef34){return function(_0x5f0c62){if(_0x5f0c62){var _0x5bcc97=_0x5f0c62[_0xa8a9('0x27')],_0xfb2b69=_0x1aef34[_0xa8a9('0x28')],_0x468864=_0x1aef34[_0xa8a9('0x28')]+_0x1aef34[_0xa8a9('0x29')],_0x108959;if(_0x468864>=_0x5bcc97){_0x468864=_0x5bcc97;_0x108959=0xc8;}else{_0x108959=0xce;}_0x2f7a56[_0xa8a9('0x24')](_0x108959);return _0x2f7a56['set'](_0xa8a9('0x2a'),_0xfb2b69+'-'+_0x468864+'/'+_0x5bcc97)[_0xa8a9('0x26')](_0x5f0c62);}return null;};}function patchUpdates(_0x128727){return function(_0x2977aa){try{jsonpatch[_0xa8a9('0x2b')](_0x2977aa,_0x128727,!![]);}catch(_0x2474c3){return BPromise[_0xa8a9('0x2c')](_0x2474c3);}return _0x2977aa[_0xa8a9('0x2d')]();};}function saveUpdates(_0x131231,_0x8fa034){return function(_0xadbe15){if(_0xadbe15){return _0xadbe15[_0xa8a9('0x2e')](_0x131231)[_0xa8a9('0x2f')](function(_0x1d95fb){return _0x1d95fb;});}return null;};}function removeEntity(_0x24fa4b,_0x3255bf){return function(_0x5e8e2c){if(_0x5e8e2c){return _0x5e8e2c[_0xa8a9('0x30')]()[_0xa8a9('0x2f')](function(){var _0x34228e=_0x5e8e2c[_0xa8a9('0x31')]({'plain':!![]});var _0x5c1f35=_0xa8a9('0x32');return db[_0xa8a9('0x33')]['destroy']({'where':{'type':_0x5c1f35,'resourceId':_0x34228e['id']}})[_0xa8a9('0x2f')](function(){return _0x5e8e2c;});})[_0xa8a9('0x2f')](function(){_0x24fa4b[_0xa8a9('0x24')](0xcc)[_0xa8a9('0x25')]();});}};}function handleEntityNotFound(_0x6bb9ce,_0x5b064b){return function(_0x2dccff){if(!_0x2dccff){_0x6bb9ce[_0xa8a9('0x34')](0x194);}return _0x2dccff;};}function handleError(_0x38bfd0,_0x2d201f){_0x2d201f=_0x2d201f||0x1f4;return function(_0x2c09b2){logger[_0xa8a9('0x1d')](_0x2c09b2['stack']);if(_0x2c09b2[_0xa8a9('0x35')]){delete _0x2c09b2['name'];}_0x38bfd0['status'](_0x2d201f)['send'](_0x2c09b2);};}exports['index']=function(_0x390106,_0x4a8bc4){var _0x22671d={},_0x55f512={},_0xc715e5={'count':0x0,'rows':[]};var _0x15801f=_[_0xa8a9('0x36')](db[_0xa8a9('0x37')][_0xa8a9('0x38')],function(_0x44c488){return{'name':_0x44c488[_0xa8a9('0x39')],'type':_0x44c488[_0xa8a9('0x3a')]['key']};});_0x55f512[_0xa8a9('0x3b')]=_[_0xa8a9('0x36')](_0x15801f,_0xa8a9('0x35'));_0x55f512[_0xa8a9('0x3c')]=_[_0xa8a9('0x3d')](_0x390106[_0xa8a9('0x3c')]);_0x55f512[_0xa8a9('0x3e')]=_[_0xa8a9('0x3f')](_0x55f512[_0xa8a9('0x3b')],_0x55f512[_0xa8a9('0x3c')]);_0x22671d[_0xa8a9('0x40')]=_[_0xa8a9('0x3f')](_0x55f512[_0xa8a9('0x3b')],qs[_0xa8a9('0x41')](_0x390106[_0xa8a9('0x3c')][_0xa8a9('0x41')]));_0x22671d[_0xa8a9('0x40')]=_0x22671d['attributes'][_0xa8a9('0x42')]?_0x22671d[_0xa8a9('0x40')]:_0x55f512[_0xa8a9('0x3b')];if(!_0x390106[_0xa8a9('0x3c')][_0xa8a9('0x43')](_0xa8a9('0x44'))){_0x22671d[_0xa8a9('0x29')]=qs[_0xa8a9('0x29')](_0x390106[_0xa8a9('0x3c')][_0xa8a9('0x29')]);_0x22671d[_0xa8a9('0x28')]=qs[_0xa8a9('0x28')](_0x390106[_0xa8a9('0x3c')]['offset']);}_0x22671d['order']=qs[_0xa8a9('0x45')](_0x390106['query'][_0xa8a9('0x45')]);_0x22671d[_0xa8a9('0x46')]=qs[_0xa8a9('0x3e')](_['pick'](_0x390106[_0xa8a9('0x3c')],_0x55f512[_0xa8a9('0x3e')]),_0x15801f);if(_0x390106[_0xa8a9('0x3c')][_0xa8a9('0x47')]){_0x22671d[_0xa8a9('0x46')]=_['merge'](_0x22671d[_0xa8a9('0x46')],{'$or':_[_0xa8a9('0x36')](_0x15801f,function(_0x3695c9){if(_0x3695c9[_0xa8a9('0x3a')]!==_0xa8a9('0x48')){var _0x3d052d={};_0x3d052d[_0x3695c9['name']]={'$like':'%'+_0x390106[_0xa8a9('0x3c')][_0xa8a9('0x47')]+'%'};return _0x3d052d;}})});}_0x22671d=_['merge']({},_0x22671d,_0x390106[_0xa8a9('0x49')]);var _0x30ac05={'where':_0x22671d[_0xa8a9('0x46')]};return db[_0xa8a9('0x37')][_0xa8a9('0x27')](_0x30ac05)[_0xa8a9('0x2f')](function(_0x165b10){_0xc715e5[_0xa8a9('0x27')]=_0x165b10;if(_0x390106[_0xa8a9('0x3c')][_0xa8a9('0x4a')]){_0x22671d['include']=[{'all':!![]}];}return db[_0xa8a9('0x37')][_0xa8a9('0x4b')](_0x22671d);})[_0xa8a9('0x2f')](function(_0x30b26f){_0xc715e5[_0xa8a9('0x4c')]=_0x30b26f;return _0xc715e5;})[_0xa8a9('0x2f')](respondWithFilteredResult(_0x4a8bc4,_0x22671d))[_0xa8a9('0x23')](handleError(_0x4a8bc4,null));};exports[_0xa8a9('0x4d')]=function(_0x280fa0,_0x43e080){var _0x4e4973={'raw':![],'where':{'id':_0x280fa0[_0xa8a9('0x4e')]['id']}},_0x4d4866={};_0x4d4866[_0xa8a9('0x3b')]=_[_0xa8a9('0x3d')](db['VoiceContext'][_0xa8a9('0x38')]);_0x4d4866['query']=_[_0xa8a9('0x3d')](_0x280fa0[_0xa8a9('0x3c')]);_0x4d4866['filters']=_[_0xa8a9('0x3f')](_0x4d4866['model'],_0x4d4866[_0xa8a9('0x3c')]);_0x4e4973[_0xa8a9('0x40')]=_[_0xa8a9('0x3f')](_0x4d4866['model'],qs['fields'](_0x280fa0[_0xa8a9('0x3c')][_0xa8a9('0x41')]));_0x4e4973[_0xa8a9('0x40')]=_0x4e4973[_0xa8a9('0x40')][_0xa8a9('0x42')]?_0x4e4973[_0xa8a9('0x40')]:_0x4d4866[_0xa8a9('0x3b')];if(_0x280fa0['query'][_0xa8a9('0x4a')]){_0x4e4973[_0xa8a9('0x4f')]=[{'all':!![]}];}_0x4e4973=_[_0xa8a9('0x50')]({},_0x4e4973,_0x280fa0[_0xa8a9('0x49')]);return db[_0xa8a9('0x37')][_0xa8a9('0x51')](_0x4e4973)['then'](handleEntityNotFound(_0x43e080,null))[_0xa8a9('0x2f')](respondWithResult(_0x43e080,null))['catch'](handleError(_0x43e080,null));};exports['create']=function(_0x290a80,_0x8234d2,_0x394964){var _0x49545f;return db[_0xa8a9('0x37')][_0xa8a9('0x52')](_0x290a80['body'],{'raw':!![]})[_0xa8a9('0x2f')](function(_0x33e63e){_0x49545f=_0x33e63e;return db['VoiceContext'][_0xa8a9('0x4b')]({'raw':!![]});})[_0xa8a9('0x2f')](function(_0x32c15c){var _0x55eec5=fs[_0xa8a9('0x53')](path[_0xa8a9('0x54')](config[_0xa8a9('0x55')],'server/files/templates/context.ejs'),'utf8');var _0x2f91e8=ejs[_0xa8a9('0x56')](_0x55eec5,{'contexts':_0x32c15c||[]});fs[_0xa8a9('0x57')](_0xa8a9('0x58'),_0x2f91e8);})['then'](function(){return respondWithRpcPromise('Reload',_0xa8a9('0x52'),{'module':'chan_sip.so'});})['then'](function(){var _0x5931bf=_0x290a80[_0xa8a9('0x59')][_0xa8a9('0x31')]({'plain':!![]});if(!_0x5931bf)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5931bf[_0xa8a9('0x5a')]===_0xa8a9('0x59')){var _0x39dfdb=_0x49545f[_0xa8a9('0x31')]({'plain':!![]});return db[_0xa8a9('0x5b')][_0xa8a9('0x51')]({'where':{'name':'Contexts','userProfileId':_0x5931bf['userProfileId']},'raw':!![]})[_0xa8a9('0x2f')](function(_0x1aa98c){if(_0x1aa98c&&_0x1aa98c[_0xa8a9('0x5c')]===0x0){return db[_0xa8a9('0x33')][_0xa8a9('0x52')]({'name':_0x39dfdb['name'],'resourceId':_0x39dfdb['id'],'type':_0x1aa98c[_0xa8a9('0x35')],'sectionId':_0x1aa98c['id']},{})[_0xa8a9('0x2f')](function(){return _0x49545f;});}else{return _0x49545f;}})['catch'](function(_0x40b86c){logger[_0xa8a9('0x1d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x40b86c);throw _0x40b86c;});}return _0x49545f;})[_0xa8a9('0x2f')](respondWithResult(_0x8234d2,0xc9))[_0xa8a9('0x23')](handleError(_0x8234d2,null));};exports[_0xa8a9('0x2e')]=function(_0x2ea4f0,_0x86fac6,_0x43650d){var _0x30e708;return db['VoiceContext'][_0xa8a9('0x51')]({'where':{'id':_0x2ea4f0[_0xa8a9('0x4e')]['id']}})[_0xa8a9('0x2f')](handleEntityNotFound(_0x86fac6,null))[_0xa8a9('0x2f')](saveUpdates(_0x2ea4f0[_0xa8a9('0x5d')],null))['then'](function(_0x24e113){if(_0x24e113){_0x30e708=_0x24e113;return db[_0xa8a9('0x37')][_0xa8a9('0x4b')]({'raw':!![]});}})[_0xa8a9('0x2f')](function(_0x40d7f5){var _0x2df4f5=fs[_0xa8a9('0x53')](path[_0xa8a9('0x54')](config['root'],_0xa8a9('0x5e')),_0xa8a9('0x5f'));var _0x2e1063=ejs[_0xa8a9('0x56')](_0x2df4f5,{'contexts':_0x40d7f5||[]});fs[_0xa8a9('0x57')](_0xa8a9('0x58'),_0x2e1063);})['then'](function(){return respondWithRpcPromise(_0xa8a9('0x60'),_0xa8a9('0x2e'),{'module':_0xa8a9('0x61')});})['then'](function(){return _0x30e708;})[_0xa8a9('0x2f')](respondWithResult(_0x86fac6,null))[_0xa8a9('0x23')](handleError(_0x86fac6,null));};exports[_0xa8a9('0x30')]=function(_0x2e1133,_0x5baf15,_0x53880d){var _0x4a0448;return db[_0xa8a9('0x37')]['find']({'where':{'id':_0x2e1133[_0xa8a9('0x4e')]['id']}})[_0xa8a9('0x2f')](handleEntityNotFound(_0x5baf15,null))['then'](removeEntity(_0x5baf15,null))[_0xa8a9('0x2f')](function(){return db[_0xa8a9('0x37')][_0xa8a9('0x4b')]({'raw':!![]});})[_0xa8a9('0x2f')](function(_0x5d89bd){var _0x16730c=fs['readFileSync'](path[_0xa8a9('0x54')](config[_0xa8a9('0x55')],'server/files/templates/context.ejs'),'utf8');var _0x3136ff=ejs['render'](_0x16730c,{'contexts':_0x5d89bd});fs[_0xa8a9('0x57')](_0xa8a9('0x58'),_0x3136ff);return respondWithRpcPromise(_0xa8a9('0x60'),'destroy',{'module':_0xa8a9('0x61')});})[_0xa8a9('0x23')](handleError(_0x5baf15,null));};