912724cea9859f74eeb6ee5620c633a1417bc218
[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 _0x2b26=['query','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','show','params','keys','rawAttributes','intersection','find','create','join','root','utf8','render','writeFileSync','Reload','chan_sip.so','role','user','UserProfileSection','autoAssociation','UserProfileResource','readFileSync','server/files/templates/context.ejs','/etc/asterisk/extensions_xcally_contexts.conf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','info','request\x20sent','debug','stringify','error','code','VoiceContext,\x20%s,\x20%s','message','catch','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','get','Contexts','sendStatus','stack','name','index','VoiceContext','type','key','model','map'];(function(_0x589f05,_0x1c5a16){var _0x3a11b4=function(_0x1ec7fb){while(--_0x1ec7fb){_0x589f05['push'](_0x589f05['shift']());}};_0x3a11b4(++_0x1c5a16);}(_0x2b26,0x91));var _0x62b2=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0x2b26[_0x4b055c];return _0x4b62bb;};'use strict';var emlformat=require(_0x62b2('0x0'));var rimraf=require(_0x62b2('0x1'));var zipdir=require(_0x62b2('0x2'));var jsonpatch=require(_0x62b2('0x3'));var rp=require(_0x62b2('0x4'));var moment=require(_0x62b2('0x5'));var BPromise=require(_0x62b2('0x6'));var Mustache=require(_0x62b2('0x7'));var util=require(_0x62b2('0x8'));var path=require('path');var sox=require(_0x62b2('0x9'));var csv=require(_0x62b2('0xa'));var ejs=require(_0x62b2('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x62b2('0xc'));var squel=require(_0x62b2('0xd'));var crypto=require(_0x62b2('0xe'));var jsforce=require(_0x62b2('0xf'));var deskjs=require(_0x62b2('0x10'));var toCsv=require(_0x62b2('0xa'));var querystring=require(_0x62b2('0x11'));var Papa=require(_0x62b2('0x12'));var Redis=require(_0x62b2('0x13'));var authService=require(_0x62b2('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x62b2('0x15'));var logger=require(_0x62b2('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x62b2('0x17'));var licenseUtil=require(_0x62b2('0x18'));var db=require(_0x62b2('0x19'))['db'];var jayson=require(_0x62b2('0x1a'));var client=jayson[_0x62b2('0x1b')][_0x62b2('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x9eca5f,_0x4c82b2,_0x1d0c9b,_0x486dd7){return new BPromise(function(_0x1c02c5,_0x102dfc){var _0x1c1366=_0x486dd7||client;return _0x1c1366[_0x62b2('0x1d')](_0x9eca5f,_0x1d0c9b)['then'](function(_0x3d6bce){logger[_0x62b2('0x1e')]('VoiceContext,\x20%s,\x20%s',_0x4c82b2,_0x62b2('0x1f'));logger[_0x62b2('0x20')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x4c82b2,_0x62b2('0x1f'),JSON[_0x62b2('0x21')](_0x3d6bce));if(_0x3d6bce['error']){if(_0x3d6bce[_0x62b2('0x22')][_0x62b2('0x23')]===0x1f4){logger['error'](_0x62b2('0x24'),_0x4c82b2,_0x3d6bce[_0x62b2('0x22')]['message']);return _0x102dfc(_0x3d6bce['error']['message']);}logger['error'](_0x62b2('0x24'),_0x4c82b2,_0x3d6bce['error'][_0x62b2('0x25')]);return _0x1c02c5(_0x3d6bce[_0x62b2('0x22')][_0x62b2('0x25')]);}else{logger[_0x62b2('0x1e')]('VoiceContext,\x20%s,\x20%s',_0x4c82b2,_0x62b2('0x1f'));_0x1c02c5(_0x3d6bce['result']['message']);}})[_0x62b2('0x26')](function(_0x2b07d5){logger[_0x62b2('0x22')](_0x62b2('0x24'),_0x4c82b2,_0x2b07d5);_0x102dfc(_0x2b07d5);});});}function respondWithStatusCode(_0xf48b7a,_0x57d0bf){_0x57d0bf=_0x57d0bf||0xcc;return function(_0x26db99){if(_0x26db99){return _0xf48b7a['sendStatus'](_0x57d0bf);}return _0xf48b7a[_0x62b2('0x27')](_0x57d0bf)[_0x62b2('0x28')]();};}function respondWithResult(_0x4fab79,_0x2b6c8d){_0x2b6c8d=_0x2b6c8d||0xc8;return function(_0x24d681){if(_0x24d681){return _0x4fab79[_0x62b2('0x27')](_0x2b6c8d)[_0x62b2('0x29')](_0x24d681);}};}function respondWithFilteredResult(_0x4becff,_0x47e5cf){return function(_0x1699b0){if(_0x1699b0){var _0x485fdc=typeof _0x47e5cf['offset']==='undefined'&&typeof _0x47e5cf[_0x62b2('0x2a')]===_0x62b2('0x2b');var _0x3293dc=_0x1699b0[_0x62b2('0x2c')];var _0x50459d=_0x485fdc?0x0:_0x47e5cf[_0x62b2('0x2d')];var _0x33a399=_0x485fdc?_0x1699b0[_0x62b2('0x2c')]:_0x47e5cf[_0x62b2('0x2d')]+_0x47e5cf['limit'];var _0x290565;if(_0x33a399>=_0x3293dc){_0x33a399=_0x3293dc;_0x290565=0xc8;}else{_0x290565=0xce;}_0x4becff[_0x62b2('0x27')](_0x290565);return _0x4becff[_0x62b2('0x2e')](_0x62b2('0x2f'),_0x50459d+'-'+_0x33a399+'/'+_0x3293dc)[_0x62b2('0x29')](_0x1699b0);}return null;};}function patchUpdates(_0xed83d4){return function(_0x2745ea){try{jsonpatch[_0x62b2('0x30')](_0x2745ea,_0xed83d4,!![]);}catch(_0x456773){return BPromise[_0x62b2('0x31')](_0x456773);}return _0x2745ea[_0x62b2('0x32')]();};}function saveUpdates(_0x1006e2,_0x4c067a){return function(_0x36cdf7){if(_0x36cdf7){return _0x36cdf7[_0x62b2('0x33')](_0x1006e2)[_0x62b2('0x34')](function(_0x43f72a){return _0x43f72a;});}return null;};}function removeEntity(_0x7573f0,_0x5f45ca){return function(_0xdc8fe3){if(_0xdc8fe3){return _0xdc8fe3[_0x62b2('0x35')]()[_0x62b2('0x34')](function(){var _0x4da3ca=_0xdc8fe3[_0x62b2('0x36')]({'plain':!![]});var _0xda51e4=_0x62b2('0x37');return db['UserProfileResource'][_0x62b2('0x35')]({'where':{'type':_0xda51e4,'resourceId':_0x4da3ca['id']}})[_0x62b2('0x34')](function(){return _0xdc8fe3;});})[_0x62b2('0x34')](function(){_0x7573f0[_0x62b2('0x27')](0xcc)[_0x62b2('0x28')]();});}};}function handleEntityNotFound(_0x1eae90,_0x430d18){return function(_0x47a0b){if(!_0x47a0b){_0x1eae90[_0x62b2('0x38')](0x194);}return _0x47a0b;};}function handleError(_0x18eafe,_0x2fbff2){_0x2fbff2=_0x2fbff2||0x1f4;return function(_0x385fb0){logger[_0x62b2('0x22')](_0x385fb0[_0x62b2('0x39')]);if(_0x385fb0['name']){delete _0x385fb0[_0x62b2('0x3a')];}_0x18eafe['status'](_0x2fbff2)['send'](_0x385fb0);};}exports[_0x62b2('0x3b')]=function(_0x5308a5,_0xa2f561){var _0x5d65d6={},_0x4dd334={},_0x1d6959={'count':0x0,'rows':[]};var _0x18df14=_['map'](db[_0x62b2('0x3c')]['rawAttributes'],function(_0xd22ed7){return{'name':_0xd22ed7['fieldName'],'type':_0xd22ed7[_0x62b2('0x3d')][_0x62b2('0x3e')]};});_0x4dd334[_0x62b2('0x3f')]=_[_0x62b2('0x40')](_0x18df14,_0x62b2('0x3a'));_0x4dd334['query']=_['keys'](_0x5308a5[_0x62b2('0x41')]);_0x4dd334[_0x62b2('0x42')]=_['intersection'](_0x4dd334['model'],_0x4dd334[_0x62b2('0x41')]);_0x5d65d6[_0x62b2('0x43')]=_['intersection'](_0x4dd334['model'],qs[_0x62b2('0x44')](_0x5308a5[_0x62b2('0x41')][_0x62b2('0x44')]));_0x5d65d6[_0x62b2('0x43')]=_0x5d65d6[_0x62b2('0x43')][_0x62b2('0x45')]?_0x5d65d6['attributes']:_0x4dd334[_0x62b2('0x3f')];if(!_0x5308a5[_0x62b2('0x41')][_0x62b2('0x46')](_0x62b2('0x47'))){_0x5d65d6['limit']=qs[_0x62b2('0x2a')](_0x5308a5[_0x62b2('0x41')]['limit']);_0x5d65d6[_0x62b2('0x2d')]=qs[_0x62b2('0x2d')](_0x5308a5[_0x62b2('0x41')][_0x62b2('0x2d')]);}_0x5d65d6[_0x62b2('0x48')]=qs[_0x62b2('0x49')](_0x5308a5[_0x62b2('0x41')][_0x62b2('0x49')]);_0x5d65d6['where']=qs[_0x62b2('0x42')](_[_0x62b2('0x4a')](_0x5308a5[_0x62b2('0x41')],_0x4dd334[_0x62b2('0x42')]),_0x18df14);if(_0x5308a5['query'][_0x62b2('0x4b')]){_0x5d65d6[_0x62b2('0x4c')]=_[_0x62b2('0x4d')](_0x5d65d6[_0x62b2('0x4c')],{'$or':_['map'](_0x18df14,function(_0x15995f){if(_0x15995f[_0x62b2('0x3d')]!==_0x62b2('0x4e')){var _0x38a014={};_0x38a014[_0x15995f[_0x62b2('0x3a')]]={'$like':'%'+_0x5308a5[_0x62b2('0x41')]['filter']+'%'};return _0x38a014;}})});}_0x5d65d6=_['merge']({},_0x5d65d6,_0x5308a5[_0x62b2('0x4f')]);var _0x5e66ca={'where':_0x5d65d6[_0x62b2('0x4c')]};return db[_0x62b2('0x3c')][_0x62b2('0x2c')](_0x5e66ca)[_0x62b2('0x34')](function(_0x3a2020){_0x1d6959[_0x62b2('0x2c')]=_0x3a2020;if(_0x5308a5[_0x62b2('0x41')][_0x62b2('0x50')]){_0x5d65d6[_0x62b2('0x51')]=[{'all':!![]}];}return db['VoiceContext'][_0x62b2('0x52')](_0x5d65d6);})[_0x62b2('0x34')](function(_0x4a234f){_0x1d6959['rows']=_0x4a234f;return _0x1d6959;})[_0x62b2('0x34')](respondWithFilteredResult(_0xa2f561,_0x5d65d6))['catch'](handleError(_0xa2f561,null));};exports[_0x62b2('0x53')]=function(_0x4d716b,_0x41b196){var _0x3eae16={'raw':![],'where':{'id':_0x4d716b[_0x62b2('0x54')]['id']}},_0x58f19a={};_0x58f19a[_0x62b2('0x3f')]=_[_0x62b2('0x55')](db[_0x62b2('0x3c')][_0x62b2('0x56')]);_0x58f19a[_0x62b2('0x41')]=_['keys'](_0x4d716b[_0x62b2('0x41')]);_0x58f19a[_0x62b2('0x42')]=_[_0x62b2('0x57')](_0x58f19a[_0x62b2('0x3f')],_0x58f19a[_0x62b2('0x41')]);_0x3eae16[_0x62b2('0x43')]=_[_0x62b2('0x57')](_0x58f19a[_0x62b2('0x3f')],qs[_0x62b2('0x44')](_0x4d716b[_0x62b2('0x41')][_0x62b2('0x44')]));_0x3eae16[_0x62b2('0x43')]=_0x3eae16[_0x62b2('0x43')][_0x62b2('0x45')]?_0x3eae16['attributes']:_0x58f19a[_0x62b2('0x3f')];if(_0x4d716b['query'][_0x62b2('0x50')]){_0x3eae16[_0x62b2('0x51')]=[{'all':!![]}];}_0x3eae16=_['merge']({},_0x3eae16,_0x4d716b[_0x62b2('0x4f')]);return db[_0x62b2('0x3c')][_0x62b2('0x58')](_0x3eae16)[_0x62b2('0x34')](handleEntityNotFound(_0x41b196,null))['then'](respondWithResult(_0x41b196,null))['catch'](handleError(_0x41b196,null));};exports[_0x62b2('0x59')]=function(_0x53ddb0,_0x6d90ef,_0x6223c2){var _0x4418cd;return db[_0x62b2('0x3c')][_0x62b2('0x59')](_0x53ddb0['body'],{'raw':!![]})[_0x62b2('0x34')](function(_0x2ff441){_0x4418cd=_0x2ff441;return db[_0x62b2('0x3c')][_0x62b2('0x52')]({'raw':!![]});})[_0x62b2('0x34')](function(_0x4ca1ed){var _0x3153a4=fs['readFileSync'](path[_0x62b2('0x5a')](config[_0x62b2('0x5b')],'server/files/templates/context.ejs'),_0x62b2('0x5c'));var _0x1bc31f=ejs[_0x62b2('0x5d')](_0x3153a4,{'contexts':_0x4ca1ed||[]});fs[_0x62b2('0x5e')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x1bc31f);})[_0x62b2('0x34')](function(){return respondWithRpcPromise(_0x62b2('0x5f'),_0x62b2('0x59'),{'module':_0x62b2('0x60')});})['then'](function(){var _0x10012b=_0x53ddb0['user'][_0x62b2('0x36')]({'plain':!![]});if(!_0x10012b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x10012b[_0x62b2('0x61')]===_0x62b2('0x62')){var _0xe2738c=_0x4418cd[_0x62b2('0x36')]({'plain':!![]});return db[_0x62b2('0x63')][_0x62b2('0x58')]({'where':{'name':_0x62b2('0x37'),'userProfileId':_0x10012b['userProfileId']},'raw':!![]})['then'](function(_0x19546b){if(_0x19546b&&_0x19546b[_0x62b2('0x64')]===0x0){return db[_0x62b2('0x65')][_0x62b2('0x59')]({'name':_0xe2738c[_0x62b2('0x3a')],'resourceId':_0xe2738c['id'],'type':_0x19546b['name'],'sectionId':_0x19546b['id']},{})[_0x62b2('0x34')](function(){return _0x4418cd;});}else{return _0x4418cd;}})[_0x62b2('0x26')](function(_0x4a6463){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4a6463);throw _0x4a6463;});}return _0x4418cd;})[_0x62b2('0x34')](respondWithResult(_0x6d90ef,0xc9))[_0x62b2('0x26')](handleError(_0x6d90ef,null));};exports[_0x62b2('0x33')]=function(_0x355959,_0x20fce3,_0x5cf175){var _0x1cde8c;return db[_0x62b2('0x3c')]['find']({'where':{'id':_0x355959[_0x62b2('0x54')]['id']}})[_0x62b2('0x34')](handleEntityNotFound(_0x20fce3,null))['then'](saveUpdates(_0x355959['body'],null))[_0x62b2('0x34')](function(_0x4dfdeb){if(_0x4dfdeb){_0x1cde8c=_0x4dfdeb;return db[_0x62b2('0x3c')][_0x62b2('0x52')]({'raw':!![]});}})[_0x62b2('0x34')](function(_0x1270f1){var _0x63bdb0=fs[_0x62b2('0x66')](path[_0x62b2('0x5a')](config[_0x62b2('0x5b')],_0x62b2('0x67')),_0x62b2('0x5c'));var _0x7df9d1=ejs['render'](_0x63bdb0,{'contexts':_0x1270f1||[]});fs[_0x62b2('0x5e')](_0x62b2('0x68'),_0x7df9d1);})[_0x62b2('0x34')](function(){return respondWithRpcPromise('Reload',_0x62b2('0x33'),{'module':'chan_sip.so'});})['then'](function(){return _0x1cde8c;})['then'](respondWithResult(_0x20fce3,null))[_0x62b2('0x26')](handleError(_0x20fce3,null));};exports['destroy']=function(_0x590577,_0x1f1022,_0xe581b4){var _0x5123a9;return db['VoiceContext'][_0x62b2('0x58')]({'where':{'id':_0x590577[_0x62b2('0x54')]['id']}})[_0x62b2('0x34')](handleEntityNotFound(_0x1f1022,null))[_0x62b2('0x34')](removeEntity(_0x1f1022,null))[_0x62b2('0x34')](function(){return db[_0x62b2('0x3c')][_0x62b2('0x52')]({'raw':!![]});})[_0x62b2('0x34')](function(_0x2db3aa){var _0x2e642a=fs[_0x62b2('0x66')](path['join'](config[_0x62b2('0x5b')],_0x62b2('0x67')),_0x62b2('0x5c'));var _0x286bf0=ejs['render'](_0x2e642a,{'contexts':_0x2db3aa});fs['writeFileSync']('/etc/asterisk/extensions_xcally_contexts.conf',_0x286bf0);return respondWithRpcPromise(_0x62b2('0x5f'),'destroy',{'module':_0x62b2('0x60')});})[_0x62b2('0x26')](handleError(_0x1f1022,null));};