8a51dd8753664ce3f07a4f65b778f5eabc44c6f9
[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 _0xac92=['get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','Variables','end','error','stack','name','send','index','map','Variable','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','order','sort','where','pick','VIRTUAL','filter','merge','options','includeAll','include','rows','catch','show','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x21eb4e,_0x3345fe){var _0x42fabc=function(_0x4f6f63){while(--_0x4f6f63){_0x21eb4e['push'](_0x21eb4e['shift']());}};_0x42fabc(++_0x3345fe);}(_0xac92,0x1aa));var _0x2ac9=function(_0x1dddb0,_0x41f1b1){_0x1dddb0=_0x1dddb0-0x0;var _0x2d1c4f=_0xac92[_0x1dddb0];return _0x2d1c4f;};'use strict';var emlformat=require(_0x2ac9('0x0'));var rimraf=require(_0x2ac9('0x1'));var zipdir=require(_0x2ac9('0x2'));var jsonpatch=require(_0x2ac9('0x3'));var rp=require(_0x2ac9('0x4'));var moment=require(_0x2ac9('0x5'));var BPromise=require(_0x2ac9('0x6'));var Mustache=require('mustache');var util=require(_0x2ac9('0x7'));var path=require('path');var sox=require(_0x2ac9('0x8'));var csv=require(_0x2ac9('0x9'));var ejs=require(_0x2ac9('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2ac9('0xb'));var squel=require(_0x2ac9('0xc'));var crypto=require(_0x2ac9('0xd'));var jsforce=require(_0x2ac9('0xe'));var deskjs=require(_0x2ac9('0xf'));var toCsv=require('to-csv');var querystring=require(_0x2ac9('0x10'));var Papa=require(_0x2ac9('0x11'));var Redis=require('ioredis');var authService=require(_0x2ac9('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x2ac9('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2ac9('0x14'))(_0x2ac9('0x15'));var utils=require('../../config/utils');var config=require(_0x2ac9('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x2ac9('0x17'))['db'];function respondWithStatusCode(_0x26be69,_0x5d1b73){_0x5d1b73=_0x5d1b73||0xcc;return function(_0x22748d){if(_0x22748d){return _0x26be69[_0x2ac9('0x18')](_0x5d1b73);}return _0x26be69[_0x2ac9('0x19')](_0x5d1b73)['end']();};}function respondWithResult(_0x2a0bfc,_0x4e681e){_0x4e681e=_0x4e681e||0xc8;return function(_0x38bbac){if(_0x38bbac){return _0x2a0bfc['status'](_0x4e681e)[_0x2ac9('0x1a')](_0x38bbac);}};}function respondWithFilteredResult(_0x1efce3,_0x10e81c){return function(_0x567f29){if(_0x567f29){var _0x3d616a=typeof _0x10e81c['offset']===_0x2ac9('0x1b')&&typeof _0x10e81c[_0x2ac9('0x1c')]===_0x2ac9('0x1b');var _0x23c398=_0x567f29['count'];var _0x2c6bee=_0x3d616a?0x0:_0x10e81c['offset'];var _0x27515f=_0x3d616a?_0x567f29[_0x2ac9('0x1d')]:_0x10e81c[_0x2ac9('0x1e')]+_0x10e81c['limit'];var _0xfad8da;if(_0x27515f>=_0x23c398){_0x27515f=_0x23c398;_0xfad8da=0xc8;}else{_0xfad8da=0xce;}_0x1efce3[_0x2ac9('0x19')](_0xfad8da);return _0x1efce3[_0x2ac9('0x1f')](_0x2ac9('0x20'),_0x2c6bee+'-'+_0x27515f+'/'+_0x23c398)['json'](_0x567f29);}return null;};}function patchUpdates(_0x198b38){return function(_0x27aba5){try{jsonpatch[_0x2ac9('0x21')](_0x27aba5,_0x198b38,!![]);}catch(_0x2896e2){return BPromise[_0x2ac9('0x22')](_0x2896e2);}return _0x27aba5[_0x2ac9('0x23')]();};}function saveUpdates(_0x4aac45,_0x31ae60){return function(_0x271496){if(_0x271496){return _0x271496[_0x2ac9('0x24')](_0x4aac45)[_0x2ac9('0x25')](function(_0x4fa511){return _0x4fa511;});}return null;};}function removeEntity(_0x301455,_0x57171f){return function(_0xd2e745){if(_0xd2e745){return _0xd2e745[_0x2ac9('0x26')]()[_0x2ac9('0x25')](function(){var _0x2e69f9=_0xd2e745['get']({'plain':!![]});var _0x4b898b=_0x2ac9('0x27');return db['UserProfileResource'][_0x2ac9('0x26')]({'where':{'type':_0x4b898b,'resourceId':_0x2e69f9['id']}})[_0x2ac9('0x25')](function(){return _0xd2e745;});})[_0x2ac9('0x25')](function(){_0x301455[_0x2ac9('0x19')](0xcc)[_0x2ac9('0x28')]();});}};}function handleEntityNotFound(_0x5e4897,_0x51454f){return function(_0x9c6d6c){if(!_0x9c6d6c){_0x5e4897[_0x2ac9('0x18')](0x194);}return _0x9c6d6c;};}function handleError(_0x119783,_0x470fa9){_0x470fa9=_0x470fa9||0x1f4;return function(_0x394cfc){logger[_0x2ac9('0x29')](_0x394cfc[_0x2ac9('0x2a')]);if(_0x394cfc[_0x2ac9('0x2b')]){delete _0x394cfc[_0x2ac9('0x2b')];}_0x119783['status'](_0x470fa9)[_0x2ac9('0x2c')](_0x394cfc);};}exports[_0x2ac9('0x2d')]=function(_0x472b48,_0x350185){var _0x2a8048={},_0x5845f7={},_0x35ad81={'count':0x0,'rows':[]};var _0x1ec7be=_[_0x2ac9('0x2e')](db[_0x2ac9('0x2f')][_0x2ac9('0x30')],function(_0x3a17f6){return{'name':_0x3a17f6[_0x2ac9('0x31')],'type':_0x3a17f6[_0x2ac9('0x32')][_0x2ac9('0x33')]};});_0x5845f7[_0x2ac9('0x34')]=_[_0x2ac9('0x2e')](_0x1ec7be,'name');_0x5845f7[_0x2ac9('0x35')]=_[_0x2ac9('0x36')](_0x472b48[_0x2ac9('0x35')]);_0x5845f7[_0x2ac9('0x37')]=_[_0x2ac9('0x38')](_0x5845f7[_0x2ac9('0x34')],_0x5845f7['query']);_0x2a8048[_0x2ac9('0x39')]=_[_0x2ac9('0x38')](_0x5845f7['model'],qs[_0x2ac9('0x3a')](_0x472b48[_0x2ac9('0x35')][_0x2ac9('0x3a')]));_0x2a8048[_0x2ac9('0x39')]=_0x2a8048['attributes']['length']?_0x2a8048['attributes']:_0x5845f7[_0x2ac9('0x34')];if(!_0x472b48[_0x2ac9('0x35')]['hasOwnProperty']('nolimit')){_0x2a8048[_0x2ac9('0x1c')]=qs[_0x2ac9('0x1c')](_0x472b48['query'][_0x2ac9('0x1c')]);_0x2a8048[_0x2ac9('0x1e')]=qs['offset'](_0x472b48['query'][_0x2ac9('0x1e')]);}_0x2a8048[_0x2ac9('0x3b')]=qs[_0x2ac9('0x3c')](_0x472b48[_0x2ac9('0x35')]['sort']);_0x2a8048[_0x2ac9('0x3d')]=qs['filters'](_[_0x2ac9('0x3e')](_0x472b48['query'],_0x5845f7[_0x2ac9('0x37')]),_0x1ec7be);if(_0x472b48['query']['filter']){_0x2a8048[_0x2ac9('0x3d')]=_['merge'](_0x2a8048[_0x2ac9('0x3d')],{'$or':_[_0x2ac9('0x2e')](_0x1ec7be,function(_0x1373a9){if(_0x1373a9[_0x2ac9('0x32')]!==_0x2ac9('0x3f')){var _0x33a77f={};_0x33a77f[_0x1373a9[_0x2ac9('0x2b')]]={'$like':'%'+_0x472b48[_0x2ac9('0x35')][_0x2ac9('0x40')]+'%'};return _0x33a77f;}})});}_0x2a8048=_[_0x2ac9('0x41')]({},_0x2a8048,_0x472b48[_0x2ac9('0x42')]);var _0x78cca={'where':_0x2a8048['where']};return db[_0x2ac9('0x2f')][_0x2ac9('0x1d')](_0x78cca)[_0x2ac9('0x25')](function(_0x39bbcb){_0x35ad81['count']=_0x39bbcb;if(_0x472b48[_0x2ac9('0x35')][_0x2ac9('0x43')]){_0x2a8048[_0x2ac9('0x44')]=[{'all':!![]}];}return db[_0x2ac9('0x2f')]['findAll'](_0x2a8048);})[_0x2ac9('0x25')](function(_0x462a7d){_0x35ad81[_0x2ac9('0x45')]=_0x462a7d;return _0x35ad81;})[_0x2ac9('0x25')](respondWithFilteredResult(_0x350185,_0x2a8048))[_0x2ac9('0x46')](handleError(_0x350185,null));};exports[_0x2ac9('0x47')]=function(_0x42e950,_0x3e2ed9){var _0x23a5cc={'raw':!![],'where':{'id':_0x42e950[_0x2ac9('0x48')]['id']}},_0x41b78e={};_0x41b78e[_0x2ac9('0x34')]=_[_0x2ac9('0x36')](db[_0x2ac9('0x2f')][_0x2ac9('0x30')]);_0x41b78e[_0x2ac9('0x35')]=_[_0x2ac9('0x36')](_0x42e950[_0x2ac9('0x35')]);_0x41b78e['filters']=_[_0x2ac9('0x38')](_0x41b78e[_0x2ac9('0x34')],_0x41b78e[_0x2ac9('0x35')]);_0x23a5cc[_0x2ac9('0x39')]=_[_0x2ac9('0x38')](_0x41b78e[_0x2ac9('0x34')],qs['fields'](_0x42e950[_0x2ac9('0x35')][_0x2ac9('0x3a')]));_0x23a5cc['attributes']=_0x23a5cc[_0x2ac9('0x39')]['length']?_0x23a5cc[_0x2ac9('0x39')]:_0x41b78e[_0x2ac9('0x34')];if(_0x42e950[_0x2ac9('0x35')][_0x2ac9('0x43')]){_0x23a5cc[_0x2ac9('0x44')]=[{'all':!![]}];}_0x23a5cc=_['merge']({},_0x23a5cc,_0x42e950['options']);return db[_0x2ac9('0x2f')][_0x2ac9('0x49')](_0x23a5cc)['then'](handleEntityNotFound(_0x3e2ed9,null))[_0x2ac9('0x25')](respondWithResult(_0x3e2ed9,null))['catch'](handleError(_0x3e2ed9,null));};exports[_0x2ac9('0x4a')]=function(_0x3bc9a1,_0x5ac95c){return db[_0x2ac9('0x2f')][_0x2ac9('0x4a')](_0x3bc9a1['body'],{})[_0x2ac9('0x25')](function(_0x19375d){var _0x4d9085=_0x3bc9a1[_0x2ac9('0x4b')]['get']({'plain':!![]});if(!_0x4d9085)throw new Error(_0x2ac9('0x4c'));if(_0x4d9085[_0x2ac9('0x4d')]===_0x2ac9('0x4b')){var _0x33e79e=_0x19375d[_0x2ac9('0x4e')]({'plain':!![]});var _0x47d5f0=_0x2ac9('0x27');return db[_0x2ac9('0x4f')]['find']({'where':{'name':_0x47d5f0,'userProfileId':_0x4d9085[_0x2ac9('0x50')]},'raw':!![]})[_0x2ac9('0x25')](function(_0x47309e){if(_0x47309e&&_0x47309e[_0x2ac9('0x51')]===0x0){return db['UserProfileResource'][_0x2ac9('0x4a')]({'name':_0x33e79e[_0x2ac9('0x2b')],'resourceId':_0x33e79e['id'],'type':_0x47309e[_0x2ac9('0x2b')],'sectionId':_0x47309e['id']},{})[_0x2ac9('0x25')](function(){return _0x19375d;});}else{return _0x19375d;}})[_0x2ac9('0x46')](function(_0x5e13cf){logger[_0x2ac9('0x29')](_0x2ac9('0x52'),_0x5e13cf);throw _0x5e13cf;});}return _0x19375d;})['then'](respondWithResult(_0x5ac95c,0xc9))['catch'](handleError(_0x5ac95c,null));};exports['update']=function(_0x23bbcd,_0x2f74cd){if(_0x23bbcd[_0x2ac9('0x53')]['id']){delete _0x23bbcd['body']['id'];}return db['Variable'][_0x2ac9('0x49')]({'where':{'id':_0x23bbcd[_0x2ac9('0x48')]['id']}})[_0x2ac9('0x25')](handleEntityNotFound(_0x2f74cd,null))[_0x2ac9('0x25')](saveUpdates(_0x23bbcd[_0x2ac9('0x53')],null))[_0x2ac9('0x25')](respondWithResult(_0x2f74cd,null))[_0x2ac9('0x46')](handleError(_0x2f74cd,null));};exports[_0x2ac9('0x26')]=function(_0x1e0944,_0x394dff){return db['Variable'][_0x2ac9('0x49')]({'where':{'id':_0x1e0944[_0x2ac9('0x48')]['id']}})[_0x2ac9('0x25')](handleEntityNotFound(_0x394dff,null))[_0x2ac9('0x25')](removeEntity(_0x394dff,null))[_0x2ac9('0x46')](handleError(_0x394dff,null));};