234d9683b8c27679f19df6454f681e4699717b13
[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 _0xd55f=['rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','show','params','length','catch','create','body','user','role','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','eml-format','moment','bluebird','mustache','sox','to-csv','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','count','offset','limit','Content-Range','apply','reject','update','then','destroy','get','Variables','sendStatus','name','send','index','Variable'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd55f,0x76));var _0xfd55=function(_0x39abfe,_0x24abef){_0x39abfe=_0x39abfe-0x0;var _0x4ef7cb=_0xd55f[_0x39abfe];return _0x4ef7cb;};'use strict';var pdf=require(_0xfd55('0x0'));var emlformat=require(_0xfd55('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xfd55('0x2'));var BPromise=require(_0xfd55('0x3'));var Mustache=require(_0xfd55('0x4'));var util=require('util');var path=require('path');var sox=require(_0xfd55('0x5'));var csv=require(_0xfd55('0x6'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xfd55('0x7'));var squel=require('squel');var crypto=require(_0xfd55('0x8'));var jsforce=require(_0xfd55('0x9'));var deskjs=require(_0xfd55('0xa'));var toCsv=require(_0xfd55('0x6'));var querystring=require('querystring');var Papa=require(_0xfd55('0xb'));var Redis=require(_0xfd55('0xc'));var authService=require('../../components/auth/service');var qs=require(_0xfd55('0xd'));var as=require(_0xfd55('0xe'));var hardwareService=require(_0xfd55('0xf'));var logger=require(_0xfd55('0x10'))(_0xfd55('0x11'));var utils=require('../../config/utils');var config=require(_0xfd55('0x12'));var licenseUtil=require(_0xfd55('0x13'));var db=require(_0xfd55('0x14'))['db'];function respondWithStatusCode(_0x3ce773,_0x33390f){_0x33390f=_0x33390f||0xcc;return function(_0x150b7d){if(_0x150b7d){return _0x3ce773['sendStatus'](_0x33390f);}return _0x3ce773[_0xfd55('0x15')](_0x33390f)[_0xfd55('0x16')]();};}function respondWithResult(_0x4dac1d,_0x57118d){_0x57118d=_0x57118d||0xc8;return function(_0x1de1b5){if(_0x1de1b5){return _0x4dac1d[_0xfd55('0x15')](_0x57118d)[_0xfd55('0x17')](_0x1de1b5);}};}function respondWithFilteredResult(_0x10c83e,_0x11accf){return function(_0x2dd80f){if(_0x2dd80f){var _0x330634=_0x2dd80f[_0xfd55('0x18')],_0x2b0192=_0x11accf[_0xfd55('0x19')],_0x435c5d=_0x11accf[_0xfd55('0x19')]+_0x11accf[_0xfd55('0x1a')],_0xff3bfc;if(_0x435c5d>=_0x330634){_0x435c5d=_0x330634;_0xff3bfc=0xc8;}else{_0xff3bfc=0xce;}_0x10c83e[_0xfd55('0x15')](_0xff3bfc);return _0x10c83e['set'](_0xfd55('0x1b'),_0x2b0192+'-'+_0x435c5d+'/'+_0x330634)['json'](_0x2dd80f);}return null;};}function patchUpdates(_0x54268a){return function(_0x27f69f){try{jsonpatch[_0xfd55('0x1c')](_0x27f69f,_0x54268a,!![]);}catch(_0x53b753){return BPromise[_0xfd55('0x1d')](_0x53b753);}return _0x27f69f['save']();};}function saveUpdates(_0x20c601,_0x5c2acb){return function(_0x160079){if(_0x160079){return _0x160079[_0xfd55('0x1e')](_0x20c601)[_0xfd55('0x1f')](function(_0x45fa4c){return _0x45fa4c;});}return null;};}function removeEntity(_0x44f498,_0x503c82){return function(_0x2561fa){if(_0x2561fa){return _0x2561fa[_0xfd55('0x20')]()[_0xfd55('0x1f')](function(){var _0x566ba7=_0x2561fa[_0xfd55('0x21')]({'plain':!![]});var _0xf5b269=_0xfd55('0x22');return db['UserProfileResource'][_0xfd55('0x20')]({'where':{'type':_0xf5b269,'resourceId':_0x566ba7['id']}})[_0xfd55('0x1f')](function(){return _0x2561fa;});})[_0xfd55('0x1f')](function(){_0x44f498[_0xfd55('0x15')](0xcc)[_0xfd55('0x16')]();});}};}function handleEntityNotFound(_0x1db786,_0x1ffd77){return function(_0x4bac39){if(!_0x4bac39){_0x1db786[_0xfd55('0x23')](0x194);}return _0x4bac39;};}function handleError(_0x2d72dc,_0x5ab00f){_0x5ab00f=_0x5ab00f||0x1f4;return function(_0x40731d){logger['error'](_0x40731d['stack']);if(_0x40731d['name']){delete _0x40731d[_0xfd55('0x24')];}_0x2d72dc[_0xfd55('0x15')](_0x5ab00f)[_0xfd55('0x25')](_0x40731d);};}exports[_0xfd55('0x26')]=function(_0x39620e,_0x2cf0ad){var _0x469f40={},_0x22d849={},_0xc14948={'count':0x0,'rows':[]};var _0x2d6641=_['map'](db[_0xfd55('0x27')][_0xfd55('0x28')],function(_0x4183b1){return{'name':_0x4183b1[_0xfd55('0x29')],'type':_0x4183b1[_0xfd55('0x2a')][_0xfd55('0x2b')]};});_0x22d849[_0xfd55('0x2c')]=_[_0xfd55('0x2d')](_0x2d6641,_0xfd55('0x24'));_0x22d849[_0xfd55('0x2e')]=_[_0xfd55('0x2f')](_0x39620e[_0xfd55('0x2e')]);_0x22d849[_0xfd55('0x30')]=_[_0xfd55('0x31')](_0x22d849[_0xfd55('0x2c')],_0x22d849['query']);_0x469f40[_0xfd55('0x32')]=_[_0xfd55('0x31')](_0x22d849[_0xfd55('0x2c')],qs[_0xfd55('0x33')](_0x39620e[_0xfd55('0x2e')][_0xfd55('0x33')]));_0x469f40[_0xfd55('0x32')]=_0x469f40[_0xfd55('0x32')]['length']?_0x469f40['attributes']:_0x22d849[_0xfd55('0x2c')];if(!_0x39620e[_0xfd55('0x2e')][_0xfd55('0x34')](_0xfd55('0x35'))){_0x469f40[_0xfd55('0x1a')]=qs[_0xfd55('0x1a')](_0x39620e[_0xfd55('0x2e')][_0xfd55('0x1a')]);_0x469f40[_0xfd55('0x19')]=qs[_0xfd55('0x19')](_0x39620e[_0xfd55('0x2e')][_0xfd55('0x19')]);}_0x469f40[_0xfd55('0x36')]=qs[_0xfd55('0x37')](_0x39620e['query']['sort']);_0x469f40[_0xfd55('0x38')]=qs[_0xfd55('0x30')](_[_0xfd55('0x39')](_0x39620e['query'],_0x22d849[_0xfd55('0x30')]),_0x2d6641);if(_0x39620e['query'][_0xfd55('0x3a')]){_0x469f40[_0xfd55('0x38')]=_['merge'](_0x469f40[_0xfd55('0x38')],{'$or':_['map'](_0x2d6641,function(_0x336d63){if(_0x336d63[_0xfd55('0x2a')]!=='VIRTUAL'){var _0x4531b5={};_0x4531b5[_0x336d63[_0xfd55('0x24')]]={'$like':'%'+_0x39620e[_0xfd55('0x2e')][_0xfd55('0x3a')]+'%'};return _0x4531b5;}})});}_0x469f40=_[_0xfd55('0x3b')]({},_0x469f40,_0x39620e[_0xfd55('0x3c')]);var _0x5caee6={'where':_0x469f40['where']};return db[_0xfd55('0x27')][_0xfd55('0x18')](_0x5caee6)['then'](function(_0x13ed05){_0xc14948['count']=_0x13ed05;if(_0x39620e[_0xfd55('0x2e')][_0xfd55('0x3d')]){_0x469f40[_0xfd55('0x3e')]=[{'all':!![]}];}return db[_0xfd55('0x27')][_0xfd55('0x3f')](_0x469f40);})[_0xfd55('0x1f')](function(_0x173832){_0xc14948['rows']=_0x173832;return _0xc14948;})[_0xfd55('0x1f')](respondWithFilteredResult(_0x2cf0ad,_0x469f40))['catch'](handleError(_0x2cf0ad,null));};exports[_0xfd55('0x40')]=function(_0x58767f,_0x14e499){var _0x469fd5={'raw':!![],'where':{'id':_0x58767f[_0xfd55('0x41')]['id']}},_0x1fa04b={};_0x1fa04b[_0xfd55('0x2c')]=_['keys'](db['Variable'][_0xfd55('0x28')]);_0x1fa04b[_0xfd55('0x2e')]=_[_0xfd55('0x2f')](_0x58767f[_0xfd55('0x2e')]);_0x1fa04b[_0xfd55('0x30')]=_[_0xfd55('0x31')](_0x1fa04b[_0xfd55('0x2c')],_0x1fa04b['query']);_0x469fd5[_0xfd55('0x32')]=_[_0xfd55('0x31')](_0x1fa04b['model'],qs['fields'](_0x58767f[_0xfd55('0x2e')][_0xfd55('0x33')]));_0x469fd5[_0xfd55('0x32')]=_0x469fd5[_0xfd55('0x32')][_0xfd55('0x42')]?_0x469fd5[_0xfd55('0x32')]:_0x1fa04b['model'];if(_0x58767f[_0xfd55('0x2e')]['includeAll']){_0x469fd5[_0xfd55('0x3e')]=[{'all':!![]}];}_0x469fd5=_[_0xfd55('0x3b')]({},_0x469fd5,_0x58767f['options']);return db[_0xfd55('0x27')]['find'](_0x469fd5)[_0xfd55('0x1f')](handleEntityNotFound(_0x14e499,null))['then'](respondWithResult(_0x14e499,null))[_0xfd55('0x43')](handleError(_0x14e499,null));};exports[_0xfd55('0x44')]=function(_0x5716de,_0x3e4db8){return db[_0xfd55('0x27')]['create'](_0x5716de[_0xfd55('0x45')],{})[_0xfd55('0x1f')](function(_0x5e2443){var _0x37aba3=_0x5716de[_0xfd55('0x46')][_0xfd55('0x21')]({'plain':!![]});if(!_0x37aba3)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x37aba3[_0xfd55('0x47')]===_0xfd55('0x46')){var _0x3eac89=_0x5e2443[_0xfd55('0x21')]({'plain':!![]});var _0x520322=_0xfd55('0x22');return db[_0xfd55('0x48')][_0xfd55('0x49')]({'where':{'name':_0x520322,'userProfileId':_0x37aba3[_0xfd55('0x4a')]},'raw':!![]})['then'](function(_0x53523d){if(_0x53523d&&_0x53523d[_0xfd55('0x4b')]===0x0){return db[_0xfd55('0x4c')][_0xfd55('0x44')]({'name':_0x3eac89[_0xfd55('0x24')],'resourceId':_0x3eac89['id'],'type':_0x53523d[_0xfd55('0x24')],'sectionId':_0x53523d['id']},{})[_0xfd55('0x1f')](function(){return _0x5e2443;});}else{return _0x5e2443;}})[_0xfd55('0x43')](function(_0x533285){logger[_0xfd55('0x4d')](_0xfd55('0x4e'),_0x533285);throw _0x533285;});}return _0x5e2443;})[_0xfd55('0x1f')](respondWithResult(_0x3e4db8,0xc9))['catch'](handleError(_0x3e4db8,null));};exports['update']=function(_0x4e19fc,_0x5254bd){if(_0x4e19fc[_0xfd55('0x45')]['id']){delete _0x4e19fc[_0xfd55('0x45')]['id'];}return db[_0xfd55('0x27')][_0xfd55('0x49')]({'where':{'id':_0x4e19fc['params']['id']}})['then'](handleEntityNotFound(_0x5254bd,null))[_0xfd55('0x1f')](saveUpdates(_0x4e19fc[_0xfd55('0x45')],null))['then'](respondWithResult(_0x5254bd,null))[_0xfd55('0x43')](handleError(_0x5254bd,null));};exports['destroy']=function(_0x1654d7,_0x454a21){return db[_0xfd55('0x27')][_0xfd55('0x49')]({'where':{'id':_0x1654d7[_0xfd55('0x41')]['id']}})['then'](handleEntityNotFound(_0x454a21,null))[_0xfd55('0x1f')](removeEntity(_0x454a21,null))[_0xfd55('0x43')](handleError(_0x454a21,null));};