39964c5042f1376bc122d86e574f692c671b9cc5
[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 _0x5e60=['limit','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','end','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','Variable','rows','catch','includeAll','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Variables','UserProfileSection','userProfileId','autoAssociation','error','params','eml-format','rimraf','zip-dir','request-promise','bluebird','util','sox','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset'];(function(_0x1f36bb,_0x8af718){var _0xaf97fa=function(_0xeca489){while(--_0xeca489){_0x1f36bb['push'](_0x1f36bb['shift']());}};_0xaf97fa(++_0x8af718);}(_0x5e60,0x179));var _0x05e6=function(_0x91d9dd,_0x571d3b){_0x91d9dd=_0x91d9dd-0x0;var _0x4f0a02=_0x5e60[_0x91d9dd];return _0x4f0a02;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x05e6('0x0'));var rimraf=require(_0x05e6('0x1'));var zipdir=require(_0x05e6('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x05e6('0x3'));var moment=require('moment');var BPromise=require(_0x05e6('0x4'));var Mustache=require('mustache');var util=require(_0x05e6('0x5'));var path=require('path');var sox=require(_0x05e6('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x05e6('0x7'));var crypto=require(_0x05e6('0x8'));var jsforce=require(_0x05e6('0x9'));var deskjs=require(_0x05e6('0xa'));var toCsv=require('to-csv');var querystring=require(_0x05e6('0xb'));var Papa=require(_0x05e6('0xc'));var Redis=require(_0x05e6('0xd'));var authService=require(_0x05e6('0xe'));var qs=require(_0x05e6('0xf'));var as=require(_0x05e6('0x10'));var hardwareService=require(_0x05e6('0x11'));var logger=require(_0x05e6('0x12'))(_0x05e6('0x13'));var utils=require(_0x05e6('0x14'));var config=require(_0x05e6('0x15'));var db=require(_0x05e6('0x16'))['db'];function respondWithStatusCode(_0x11f34f,_0x82ab3e){_0x82ab3e=_0x82ab3e||0xcc;return function(_0x32b222){if(_0x32b222){return _0x11f34f[_0x05e6('0x17')](_0x82ab3e);}return _0x11f34f[_0x05e6('0x18')](_0x82ab3e)['end']();};}function respondWithResult(_0x4bf777,_0x2123f7){_0x2123f7=_0x2123f7||0xc8;return function(_0xa72faa){if(_0xa72faa){return _0x4bf777[_0x05e6('0x18')](_0x2123f7)[_0x05e6('0x19')](_0xa72faa);}};}function respondWithFilteredResult(_0x21eb0a,_0x13a7d7){return function(_0x377bb0){if(_0x377bb0){var _0x155753=_0x377bb0[_0x05e6('0x1a')],_0x1b033c=_0x13a7d7[_0x05e6('0x1b')],_0x4f0ee3=_0x13a7d7[_0x05e6('0x1b')]+_0x13a7d7[_0x05e6('0x1c')],_0x2bc2e4;if(_0x4f0ee3>=_0x155753){_0x4f0ee3=_0x155753;_0x2bc2e4=0xc8;}else{_0x2bc2e4=0xce;}_0x21eb0a[_0x05e6('0x18')](_0x2bc2e4);return _0x21eb0a[_0x05e6('0x1d')](_0x05e6('0x1e'),_0x1b033c+'-'+_0x4f0ee3+'/'+_0x155753)['json'](_0x377bb0);}return null;};}function patchUpdates(_0xfaf80a){return function(_0x33fb17){try{jsonpatch[_0x05e6('0x1f')](_0x33fb17,_0xfaf80a,!![]);}catch(_0x2564fe){return BPromise[_0x05e6('0x20')](_0x2564fe);}return _0x33fb17[_0x05e6('0x21')]();};}function saveUpdates(_0x4d1818,_0x4f60d2){return function(_0x440eb1){if(_0x440eb1){return _0x440eb1[_0x05e6('0x22')](_0x4d1818)[_0x05e6('0x23')](function(_0x1f6fca){return _0x1f6fca;});}return null;};}function removeEntity(_0x74d673,_0x1df140){return function(_0x1db276){if(_0x1db276){return _0x1db276[_0x05e6('0x24')]()[_0x05e6('0x23')](function(){var _0x4199e9=_0x1db276[_0x05e6('0x25')]({'plain':!![]});var _0x284a02='Variables';return db[_0x05e6('0x26')][_0x05e6('0x24')]({'where':{'type':_0x284a02,'resourceId':_0x4199e9['id']}})['then'](function(){return _0x1db276;});})['then'](function(){_0x74d673[_0x05e6('0x18')](0xcc)[_0x05e6('0x27')]();});}};}function handleEntityNotFound(_0x5f0d50,_0xda78fe){return function(_0x362325){if(!_0x362325){_0x5f0d50['sendStatus'](0x194);}return _0x362325;};}function handleError(_0x55e7c2,_0x20832e){_0x20832e=_0x20832e||0x1f4;return function(_0x2eba67){logger['error'](_0x2eba67[_0x05e6('0x28')]);if(_0x2eba67['name']){delete _0x2eba67[_0x05e6('0x29')];}_0x55e7c2['status'](_0x20832e)['send'](_0x2eba67);};}exports[_0x05e6('0x2a')]=function(_0x1fb43c,_0x4fb24c){var _0x12f85f={},_0xadf188={},_0x5b07fd={'count':0x0,'rows':[]};var _0x87019c=_[_0x05e6('0x2b')](db['Variable'][_0x05e6('0x2c')],function(_0x967f17){return{'name':_0x967f17[_0x05e6('0x2d')],'type':_0x967f17[_0x05e6('0x2e')][_0x05e6('0x2f')]};});_0xadf188[_0x05e6('0x30')]=_[_0x05e6('0x2b')](_0x87019c,_0x05e6('0x29'));_0xadf188[_0x05e6('0x31')]=_[_0x05e6('0x32')](_0x1fb43c[_0x05e6('0x31')]);_0xadf188[_0x05e6('0x33')]=_[_0x05e6('0x34')](_0xadf188['model'],_0xadf188[_0x05e6('0x31')]);_0x12f85f['attributes']=_[_0x05e6('0x34')](_0xadf188['model'],qs[_0x05e6('0x35')](_0x1fb43c[_0x05e6('0x31')]['fields']));_0x12f85f[_0x05e6('0x36')]=_0x12f85f[_0x05e6('0x36')][_0x05e6('0x37')]?_0x12f85f[_0x05e6('0x36')]:_0xadf188[_0x05e6('0x30')];if(!_0x1fb43c[_0x05e6('0x31')][_0x05e6('0x38')]('nolimit')){_0x12f85f[_0x05e6('0x1c')]=qs[_0x05e6('0x1c')](_0x1fb43c[_0x05e6('0x31')][_0x05e6('0x1c')]);_0x12f85f[_0x05e6('0x1b')]=qs['offset'](_0x1fb43c[_0x05e6('0x31')][_0x05e6('0x1b')]);}_0x12f85f[_0x05e6('0x39')]=qs['sort'](_0x1fb43c[_0x05e6('0x31')][_0x05e6('0x3a')]);_0x12f85f[_0x05e6('0x3b')]=qs['filters'](_['pick'](_0x1fb43c[_0x05e6('0x31')],_0xadf188[_0x05e6('0x33')]),_0x87019c);if(_0x1fb43c[_0x05e6('0x31')][_0x05e6('0x3c')]){_0x12f85f[_0x05e6('0x3b')]=_[_0x05e6('0x3d')](_0x12f85f[_0x05e6('0x3b')],{'$or':_[_0x05e6('0x2b')](_0x87019c,function(_0x5d189f){if(_0x5d189f[_0x05e6('0x2e')]!==_0x05e6('0x3e')){var _0x2a59c5={};_0x2a59c5[_0x5d189f['name']]={'$like':'%'+_0x1fb43c[_0x05e6('0x31')][_0x05e6('0x3c')]+'%'};return _0x2a59c5;}})});}_0x12f85f=_['merge']({},_0x12f85f,_0x1fb43c[_0x05e6('0x3f')]);var _0x170ea1={'where':_0x12f85f[_0x05e6('0x3b')]};return db[_0x05e6('0x40')][_0x05e6('0x1a')](_0x170ea1)['then'](function(_0x1e33d8){_0x5b07fd[_0x05e6('0x1a')]=_0x1e33d8;if(_0x1fb43c[_0x05e6('0x31')]['includeAll']){_0x12f85f['include']=[{'all':!![]}];}return db[_0x05e6('0x40')]['findAll'](_0x12f85f);})[_0x05e6('0x23')](function(_0x2d2092){_0x5b07fd[_0x05e6('0x41')]=_0x2d2092;return _0x5b07fd;})[_0x05e6('0x23')](respondWithFilteredResult(_0x4fb24c,_0x12f85f))[_0x05e6('0x42')](handleError(_0x4fb24c,null));};exports['show']=function(_0x543e5f,_0x3f49ca){var _0x1d030f={'raw':!![],'where':{'id':_0x543e5f['params']['id']}},_0x4cdc94={};_0x4cdc94[_0x05e6('0x30')]=_[_0x05e6('0x32')](db[_0x05e6('0x40')][_0x05e6('0x2c')]);_0x4cdc94[_0x05e6('0x31')]=_[_0x05e6('0x32')](_0x543e5f[_0x05e6('0x31')]);_0x4cdc94[_0x05e6('0x33')]=_[_0x05e6('0x34')](_0x4cdc94['model'],_0x4cdc94['query']);_0x1d030f[_0x05e6('0x36')]=_['intersection'](_0x4cdc94[_0x05e6('0x30')],qs['fields'](_0x543e5f['query'][_0x05e6('0x35')]));_0x1d030f[_0x05e6('0x36')]=_0x1d030f[_0x05e6('0x36')][_0x05e6('0x37')]?_0x1d030f['attributes']:_0x4cdc94[_0x05e6('0x30')];if(_0x543e5f[_0x05e6('0x31')][_0x05e6('0x43')]){_0x1d030f[_0x05e6('0x44')]=[{'all':!![]}];}_0x1d030f=_['merge']({},_0x1d030f,_0x543e5f[_0x05e6('0x3f')]);return db[_0x05e6('0x40')][_0x05e6('0x45')](_0x1d030f)[_0x05e6('0x23')](handleEntityNotFound(_0x3f49ca,null))[_0x05e6('0x23')](respondWithResult(_0x3f49ca,null))['catch'](handleError(_0x3f49ca,null));};exports[_0x05e6('0x46')]=function(_0x778fc9,_0x5dd67c){return db[_0x05e6('0x40')][_0x05e6('0x46')](_0x778fc9[_0x05e6('0x47')],{})[_0x05e6('0x23')](function(_0x3dd261){var _0x545d9d=_0x778fc9[_0x05e6('0x48')][_0x05e6('0x25')]({'plain':!![]});if(!_0x545d9d)throw new Error(_0x05e6('0x49'));if(_0x545d9d[_0x05e6('0x4a')]===_0x05e6('0x48')){var _0x1db469=_0x3dd261[_0x05e6('0x25')]({'plain':!![]});var _0x886934=_0x05e6('0x4b');return db[_0x05e6('0x4c')]['find']({'where':{'name':_0x886934,'userProfileId':_0x545d9d[_0x05e6('0x4d')]},'raw':!![]})['then'](function(_0x395a7e){if(_0x395a7e&&_0x395a7e[_0x05e6('0x4e')]===0x0){return db['UserProfileResource'][_0x05e6('0x46')]({'name':_0x1db469[_0x05e6('0x29')],'resourceId':_0x1db469['id'],'type':_0x395a7e[_0x05e6('0x29')],'sectionId':_0x395a7e['id']},{})[_0x05e6('0x23')](function(){return _0x3dd261;});}else{return _0x3dd261;}})[_0x05e6('0x42')](function(_0x3c64d3){logger[_0x05e6('0x4f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3c64d3);throw _0x3c64d3;});}return _0x3dd261;})['then'](respondWithResult(_0x5dd67c,0xc9))[_0x05e6('0x42')](handleError(_0x5dd67c,null));};exports[_0x05e6('0x22')]=function(_0x54c68e,_0x22553d){if(_0x54c68e[_0x05e6('0x47')]['id']){delete _0x54c68e[_0x05e6('0x47')]['id'];}return db['Variable'][_0x05e6('0x45')]({'where':{'id':_0x54c68e[_0x05e6('0x50')]['id']}})[_0x05e6('0x23')](handleEntityNotFound(_0x22553d,null))[_0x05e6('0x23')](saveUpdates(_0x54c68e[_0x05e6('0x47')],null))[_0x05e6('0x23')](respondWithResult(_0x22553d,null))[_0x05e6('0x42')](handleError(_0x22553d,null));};exports['destroy']=function(_0x2fc964,_0x3f2229){return db[_0x05e6('0x40')]['find']({'where':{'id':_0x2fc964[_0x05e6('0x50')]['id']}})[_0x05e6('0x23')](handleEntityNotFound(_0x3f2229,null))['then'](removeEntity(_0x3f2229,null))[_0x05e6('0x42')](handleError(_0x3f2229,null));};