fa7a9b9e9ad538ac9db8ab059e9183d89a0cbeb8
[motion2.git] / server / api / variable / variable.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 _0xae5d=['userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','html-pdf','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','sendStatus','end','json','offset','limit','status','set','Content-Range','save','update','then','destroy','get','UserProfileResource','stack','name','index','Variable','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','catch','show','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Variables'];(function(_0x30b836,_0x5a2f15){var _0xa4a102=function(_0x55cbad){while(--_0x55cbad){_0x30b836['push'](_0x30b836['shift']());}};_0xa4a102(++_0x5a2f15);}(_0xae5d,0xa5));var _0xdae5=function(_0x25cd2c,_0x57498e){_0x25cd2c=_0x25cd2c-0x0;var _0x1e364c=_0xae5d[_0x25cd2c];return _0x1e364c;};'use strict';var pdf=require(_0xdae5('0x0'));var emlformat=require(_0xdae5('0x1'));var rimraf=require(_0xdae5('0x2'));var zipdir=require(_0xdae5('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xdae5('0x4'));var BPromise=require(_0xdae5('0x5'));var Mustache=require(_0xdae5('0x6'));var util=require(_0xdae5('0x7'));var path=require(_0xdae5('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xdae5('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0xdae5('0xa'));var crypto=require(_0xdae5('0xb'));var jsforce=require(_0xdae5('0xc'));var deskjs=require(_0xdae5('0xd'));var toCsv=require(_0xdae5('0xe'));var querystring=require(_0xdae5('0xf'));var Papa=require('papaparse');var Redis=require(_0xdae5('0x10'));var authService=require(_0xdae5('0x11'));var qs=require(_0xdae5('0x12'));var as=require(_0xdae5('0x13'));var hardwareService=require(_0xdae5('0x14'));var logger=require(_0xdae5('0x15'))(_0xdae5('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xdae5('0x17'))['db'];function respondWithStatusCode(_0x49f809,_0xecaecc){_0xecaecc=_0xecaecc||0xcc;return function(_0x2a79c5){if(_0x2a79c5){return _0x49f809[_0xdae5('0x18')](_0xecaecc);}return _0x49f809['status'](_0xecaecc)[_0xdae5('0x19')]();};}function respondWithResult(_0x1b1abc,_0xb67928){_0xb67928=_0xb67928||0xc8;return function(_0x46282d){if(_0x46282d){return _0x1b1abc['status'](_0xb67928)[_0xdae5('0x1a')](_0x46282d);}};}function respondWithFilteredResult(_0x3977f2,_0x371ef2){return function(_0x190c5b){if(_0x190c5b){var _0xf55b4c=_0x190c5b['count'],_0x402863=_0x371ef2[_0xdae5('0x1b')],_0x34e454=_0x371ef2[_0xdae5('0x1b')]+_0x371ef2[_0xdae5('0x1c')],_0x478581;if(_0x34e454>=_0xf55b4c){_0x34e454=_0xf55b4c;_0x478581=0xc8;}else{_0x478581=0xce;}_0x3977f2[_0xdae5('0x1d')](_0x478581);return _0x3977f2[_0xdae5('0x1e')](_0xdae5('0x1f'),_0x402863+'-'+_0x34e454+'/'+_0xf55b4c)[_0xdae5('0x1a')](_0x190c5b);}return null;};}function patchUpdates(_0x218ed2){return function(_0x27ba87){try{jsonpatch['apply'](_0x27ba87,_0x218ed2,!![]);}catch(_0x15d73a){return BPromise['reject'](_0x15d73a);}return _0x27ba87[_0xdae5('0x20')]();};}function saveUpdates(_0x3e517c,_0x4f2e8c){return function(_0x127476){if(_0x127476){return _0x127476[_0xdae5('0x21')](_0x3e517c)[_0xdae5('0x22')](function(_0x583871){return _0x583871;});}return null;};}function removeEntity(_0x2e03db,_0x264629){return function(_0x4e9bdd){if(_0x4e9bdd){return _0x4e9bdd[_0xdae5('0x23')]()[_0xdae5('0x22')](function(){var _0x83e9af=_0x4e9bdd[_0xdae5('0x24')]({'plain':!![]});var _0x55332e='Variables';return db[_0xdae5('0x25')][_0xdae5('0x23')]({'where':{'type':_0x55332e,'resourceId':_0x83e9af['id']}})[_0xdae5('0x22')](function(){return _0x4e9bdd;});})['then'](function(){_0x2e03db[_0xdae5('0x1d')](0xcc)[_0xdae5('0x19')]();});}};}function handleEntityNotFound(_0x1e7962,_0x59c8a8){return function(_0x1559a2){if(!_0x1559a2){_0x1e7962[_0xdae5('0x18')](0x194);}return _0x1559a2;};}function handleError(_0x301443,_0x5a6f3d){_0x5a6f3d=_0x5a6f3d||0x1f4;return function(_0x15b8b1){logger['error'](_0x15b8b1[_0xdae5('0x26')]);if(_0x15b8b1[_0xdae5('0x27')]){delete _0x15b8b1[_0xdae5('0x27')];}_0x301443[_0xdae5('0x1d')](_0x5a6f3d)['send'](_0x15b8b1);};}exports[_0xdae5('0x28')]=function(_0x3b0098,_0x414f72){var _0x287086={},_0x3a1117={},_0xb2987d={'count':0x0,'rows':[]};var _0x4e506c=_['map'](db[_0xdae5('0x29')][_0xdae5('0x2a')],function(_0xedc21f){return{'name':_0xedc21f[_0xdae5('0x2b')],'type':_0xedc21f[_0xdae5('0x2c')][_0xdae5('0x2d')]};});_0x3a1117[_0xdae5('0x2e')]=_['map'](_0x4e506c,_0xdae5('0x27'));_0x3a1117['query']=_[_0xdae5('0x2f')](_0x3b0098[_0xdae5('0x30')]);_0x3a1117[_0xdae5('0x31')]=_[_0xdae5('0x32')](_0x3a1117[_0xdae5('0x2e')],_0x3a1117[_0xdae5('0x30')]);_0x287086['attributes']=_[_0xdae5('0x32')](_0x3a1117[_0xdae5('0x2e')],qs[_0xdae5('0x33')](_0x3b0098[_0xdae5('0x30')][_0xdae5('0x33')]));_0x287086['attributes']=_0x287086[_0xdae5('0x34')]['length']?_0x287086['attributes']:_0x3a1117[_0xdae5('0x2e')];if(!_0x3b0098[_0xdae5('0x30')][_0xdae5('0x35')](_0xdae5('0x36'))){_0x287086[_0xdae5('0x1c')]=qs['limit'](_0x3b0098[_0xdae5('0x30')][_0xdae5('0x1c')]);_0x287086[_0xdae5('0x1b')]=qs[_0xdae5('0x1b')](_0x3b0098[_0xdae5('0x30')][_0xdae5('0x1b')]);}_0x287086[_0xdae5('0x37')]=qs[_0xdae5('0x38')](_0x3b0098['query'][_0xdae5('0x38')]);_0x287086[_0xdae5('0x39')]=qs[_0xdae5('0x31')](_[_0xdae5('0x3a')](_0x3b0098[_0xdae5('0x30')],_0x3a1117[_0xdae5('0x31')]),_0x4e506c);if(_0x3b0098[_0xdae5('0x30')]['filter']){_0x287086[_0xdae5('0x39')]=_[_0xdae5('0x3b')](_0x287086['where'],{'$or':_['map'](_0x4e506c,function(_0x18ca03){if(_0x18ca03[_0xdae5('0x2c')]!==_0xdae5('0x3c')){var _0x5c8704={};_0x5c8704[_0x18ca03[_0xdae5('0x27')]]={'$like':'%'+_0x3b0098['query'][_0xdae5('0x3d')]+'%'};return _0x5c8704;}})});}_0x287086=_['merge']({},_0x287086,_0x3b0098[_0xdae5('0x3e')]);var _0x1f0507={'where':_0x287086['where']};return db['Variable']['count'](_0x1f0507)[_0xdae5('0x22')](function(_0x3e4986){_0xb2987d['count']=_0x3e4986;if(_0x3b0098[_0xdae5('0x30')][_0xdae5('0x3f')]){_0x287086[_0xdae5('0x40')]=[{'all':!![]}];}return db[_0xdae5('0x29')]['findAll'](_0x287086);})[_0xdae5('0x22')](function(_0x250de8){_0xb2987d['rows']=_0x250de8;return _0xb2987d;})[_0xdae5('0x22')](respondWithFilteredResult(_0x414f72,_0x287086))[_0xdae5('0x41')](handleError(_0x414f72,null));};exports[_0xdae5('0x42')]=function(_0x13e4ed,_0x517e74){var _0x2e73ab={'raw':!![],'where':{'id':_0x13e4ed['params']['id']}},_0x548f94={};_0x548f94['model']=_['keys'](db['Variable'][_0xdae5('0x2a')]);_0x548f94[_0xdae5('0x30')]=_[_0xdae5('0x2f')](_0x13e4ed[_0xdae5('0x30')]);_0x548f94[_0xdae5('0x31')]=_[_0xdae5('0x32')](_0x548f94[_0xdae5('0x2e')],_0x548f94[_0xdae5('0x30')]);_0x2e73ab[_0xdae5('0x34')]=_[_0xdae5('0x32')](_0x548f94[_0xdae5('0x2e')],qs[_0xdae5('0x33')](_0x13e4ed['query'][_0xdae5('0x33')]));_0x2e73ab[_0xdae5('0x34')]=_0x2e73ab[_0xdae5('0x34')][_0xdae5('0x43')]?_0x2e73ab[_0xdae5('0x34')]:_0x548f94[_0xdae5('0x2e')];if(_0x13e4ed['query']['includeAll']){_0x2e73ab[_0xdae5('0x40')]=[{'all':!![]}];}_0x2e73ab=_['merge']({},_0x2e73ab,_0x13e4ed[_0xdae5('0x3e')]);return db[_0xdae5('0x29')][_0xdae5('0x44')](_0x2e73ab)[_0xdae5('0x22')](handleEntityNotFound(_0x517e74,null))[_0xdae5('0x22')](respondWithResult(_0x517e74,null))['catch'](handleError(_0x517e74,null));};exports[_0xdae5('0x45')]=function(_0x1feaac,_0x4865dc){return db[_0xdae5('0x29')]['create'](_0x1feaac[_0xdae5('0x46')],{})[_0xdae5('0x22')](function(_0x2f6adb){var _0x5419e5=_0x1feaac[_0xdae5('0x47')]['get']({'plain':!![]});if(!_0x5419e5)throw new Error(_0xdae5('0x48'));if(_0x5419e5[_0xdae5('0x49')]===_0xdae5('0x47')){var _0x1e57b2=_0x2f6adb[_0xdae5('0x24')]({'plain':!![]});var _0x16f3b8=_0xdae5('0x4a');return db['UserProfileSection']['find']({'where':{'name':_0x16f3b8,'userProfileId':_0x5419e5[_0xdae5('0x4b')]},'raw':!![]})[_0xdae5('0x22')](function(_0x42c986){if(_0x42c986&&_0x42c986[_0xdae5('0x4c')]===0x0){return db[_0xdae5('0x25')][_0xdae5('0x45')]({'name':_0x1e57b2[_0xdae5('0x27')],'resourceId':_0x1e57b2['id'],'type':_0x42c986[_0xdae5('0x27')],'sectionId':_0x42c986['id']},{})['then'](function(){return _0x2f6adb;});}else{return _0x2f6adb;}})[_0xdae5('0x41')](function(_0x2913bf){logger[_0xdae5('0x4d')](_0xdae5('0x4e'),_0x2913bf);throw _0x2913bf;});}return _0x2f6adb;})[_0xdae5('0x22')](respondWithResult(_0x4865dc,0xc9))[_0xdae5('0x41')](handleError(_0x4865dc,null));};exports[_0xdae5('0x21')]=function(_0x384a0f,_0x3cc2d4){if(_0x384a0f[_0xdae5('0x46')]['id']){delete _0x384a0f['body']['id'];}return db[_0xdae5('0x29')][_0xdae5('0x44')]({'where':{'id':_0x384a0f[_0xdae5('0x4f')]['id']}})[_0xdae5('0x22')](handleEntityNotFound(_0x3cc2d4,null))['then'](saveUpdates(_0x384a0f[_0xdae5('0x46')],null))['then'](respondWithResult(_0x3cc2d4,null))['catch'](handleError(_0x3cc2d4,null));};exports[_0xdae5('0x23')]=function(_0x261c2f,_0x556be3){return db['Variable'][_0xdae5('0x44')]({'where':{'id':_0x261c2f[_0xdae5('0x4f')]['id']}})['then'](handleEntityNotFound(_0x556be3,null))['then'](removeEntity(_0x556be3,null))[_0xdae5('0x41')](handleError(_0x556be3,null));};