18c805527f24174f7ea506ee6c3c50a66e503072
[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 _0xc904=['rawAttributes','filtears','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','count','offset','limit','set','apply','reject','save','then','destroy','get','Variables','UserProfileResource','name','send','index','map','Variable','fieldName','type','query','keys','filters','model','intersection','fields','attributes','length','hasOwnProperty','sort','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','show','params'];(function(_0x395774,_0x24155c){var _0x125482=function(_0x4e62b5){while(--_0x4e62b5){_0x395774['push'](_0x395774['shift']());}};_0x125482(++_0x24155c);}(_0xc904,0xfd));var _0x4c90=function(_0x369151,_0x179f72){_0x369151=_0x369151-0x0;var _0x4292d5=_0xc904[_0x369151];return _0x4292d5;};'use strict';var pdf=require(_0x4c90('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x4c90('0x1'));var jsonpatch=require(_0x4c90('0x2'));var rp=require(_0x4c90('0x3'));var moment=require(_0x4c90('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x4c90('0x5'));var util=require(_0x4c90('0x6'));var path=require('path');var sox=require(_0x4c90('0x7'));var csv=require(_0x4c90('0x8'));var ejs=require(_0x4c90('0x9'));var fs=require('fs');var _=require(_0x4c90('0xa'));var squel=require(_0x4c90('0xb'));var crypto=require(_0x4c90('0xc'));var jsforce=require(_0x4c90('0xd'));var deskjs=require(_0x4c90('0xe'));var toCsv=require(_0x4c90('0x8'));var querystring=require(_0x4c90('0xf'));var Papa=require(_0x4c90('0x10'));var Redis=require(_0x4c90('0x11'));var authService=require(_0x4c90('0x12'));var qs=require(_0x4c90('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4c90('0x14'));var logger=require(_0x4c90('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x4c90('0x16'));var licenseUtil=require(_0x4c90('0x17'));var db=require(_0x4c90('0x18'))['db'];function respondWithStatusCode(_0x2ce716,_0x374ac8){_0x374ac8=_0x374ac8||0xcc;return function(_0xd358b3){if(_0xd358b3){return _0x2ce716[_0x4c90('0x19')](_0x374ac8);}return _0x2ce716['status'](_0x374ac8)[_0x4c90('0x1a')]();};}function respondWithResult(_0x489354,_0x3259e2){_0x3259e2=_0x3259e2||0xc8;return function(_0x46d0b5){if(_0x46d0b5){return _0x489354[_0x4c90('0x1b')](_0x3259e2)['json'](_0x46d0b5);}};}function respondWithFilteredResult(_0x2c542b,_0x4d80de){return function(_0x2a06af){if(_0x2a06af){var _0x5636c1=_0x2a06af[_0x4c90('0x1c')],_0x2ae48e=_0x4d80de[_0x4c90('0x1d')],_0x19be1f=_0x4d80de['offset']+_0x4d80de[_0x4c90('0x1e')],_0x3d0355;if(_0x19be1f>=_0x5636c1){_0x19be1f=_0x5636c1;_0x3d0355=0xc8;}else{_0x3d0355=0xce;}_0x2c542b['status'](_0x3d0355);return _0x2c542b[_0x4c90('0x1f')]('Content-Range',_0x2ae48e+'-'+_0x19be1f+'/'+_0x5636c1)['json'](_0x2a06af);}return null;};}function patchUpdates(_0x572b10){return function(_0x336c15){try{jsonpatch[_0x4c90('0x20')](_0x336c15,_0x572b10,!![]);}catch(_0x75ac9c){return BPromise[_0x4c90('0x21')](_0x75ac9c);}return _0x336c15[_0x4c90('0x22')]();};}function saveUpdates(_0x3b619e,_0x5cb808){return function(_0xee4c88){if(_0xee4c88){return _0xee4c88['update'](_0x3b619e)[_0x4c90('0x23')](function(_0x9d5f11){return _0x9d5f11;});}return null;};}function removeEntity(_0x1ec5dd,_0x2b8e96){return function(_0x3262ff){if(_0x3262ff){return _0x3262ff[_0x4c90('0x24')]()[_0x4c90('0x23')](function(){var _0x2f9955=_0x3262ff[_0x4c90('0x25')]({'plain':!![]});var _0x3718dd=_0x4c90('0x26');return db[_0x4c90('0x27')]['destroy']({'where':{'type':_0x3718dd,'resourceId':_0x2f9955['id']}})[_0x4c90('0x23')](function(){return _0x3262ff;});})[_0x4c90('0x23')](function(){_0x1ec5dd[_0x4c90('0x1b')](0xcc)[_0x4c90('0x1a')]();});}};}function handleEntityNotFound(_0x4f01f3,_0x2b5aff){return function(_0x363720){if(!_0x363720){_0x4f01f3[_0x4c90('0x19')](0x194);}return _0x363720;};}function handleError(_0xe9ea6d,_0x150f09){_0x150f09=_0x150f09||0x1f4;return function(_0x43726c){logger['error'](_0x43726c['stack']);if(_0x43726c[_0x4c90('0x28')]){delete _0x43726c[_0x4c90('0x28')];}_0xe9ea6d['status'](_0x150f09)[_0x4c90('0x29')](_0x43726c);};}exports[_0x4c90('0x2a')]=function(_0x431735,_0x39e2c5){var _0x57c0cb={},_0x403efc={},_0x237025={'count':0x0,'rows':[]};var _0x36d361=_[_0x4c90('0x2b')](db[_0x4c90('0x2c')]['rawAttributes'],function(_0x3d71a7){return{'name':_0x3d71a7[_0x4c90('0x2d')],'type':_0x3d71a7[_0x4c90('0x2e')]['key']};});_0x403efc['model']=_[_0x4c90('0x2b')](_0x36d361,_0x4c90('0x28'));_0x403efc[_0x4c90('0x2f')]=_[_0x4c90('0x30')](_0x431735[_0x4c90('0x2f')]);_0x403efc[_0x4c90('0x31')]=_['intersection'](_0x403efc[_0x4c90('0x32')],_0x403efc[_0x4c90('0x2f')]);_0x57c0cb['attributes']=_[_0x4c90('0x33')](_0x403efc['model'],qs[_0x4c90('0x34')](_0x431735[_0x4c90('0x2f')][_0x4c90('0x34')]));_0x57c0cb[_0x4c90('0x35')]=_0x57c0cb[_0x4c90('0x35')][_0x4c90('0x36')]?_0x57c0cb[_0x4c90('0x35')]:_0x403efc[_0x4c90('0x32')];if(!_0x431735[_0x4c90('0x2f')][_0x4c90('0x37')]('nolimit')){_0x57c0cb[_0x4c90('0x1e')]=qs[_0x4c90('0x1e')](_0x431735[_0x4c90('0x2f')][_0x4c90('0x1e')]);_0x57c0cb[_0x4c90('0x1d')]=qs['offset'](_0x431735[_0x4c90('0x2f')][_0x4c90('0x1d')]);}_0x57c0cb['order']=qs[_0x4c90('0x38')](_0x431735['query'][_0x4c90('0x38')]);_0x57c0cb['where']=qs[_0x4c90('0x31')](_['pick'](_0x431735['query'],_0x403efc[_0x4c90('0x31')]),_0x36d361);if(_0x431735['query']['filter']){_0x57c0cb['where']=_[_0x4c90('0x39')](_0x57c0cb['where'],{'$or':_['map'](_0x36d361,function(_0x3dbc9e){if(_0x3dbc9e[_0x4c90('0x2e')]!==_0x4c90('0x3a')){var _0x4101a8={};_0x4101a8[_0x3dbc9e[_0x4c90('0x28')]]={'$like':'%'+_0x431735[_0x4c90('0x2f')][_0x4c90('0x3b')]+'%'};return _0x4101a8;}})});}_0x57c0cb=_[_0x4c90('0x39')]({},_0x57c0cb,_0x431735[_0x4c90('0x3c')]);var _0x333bd4={'where':_0x57c0cb['where']};return db[_0x4c90('0x2c')][_0x4c90('0x1c')](_0x333bd4)[_0x4c90('0x23')](function(_0x293484){_0x237025[_0x4c90('0x1c')]=_0x293484;if(_0x431735[_0x4c90('0x2f')][_0x4c90('0x3d')]){_0x57c0cb[_0x4c90('0x3e')]=[{'all':!![]}];}return db['Variable'][_0x4c90('0x3f')](_0x57c0cb);})[_0x4c90('0x23')](function(_0xa0ad73){_0x237025[_0x4c90('0x40')]=_0xa0ad73;return _0x237025;})[_0x4c90('0x23')](respondWithFilteredResult(_0x39e2c5,_0x57c0cb))['catch'](handleError(_0x39e2c5,null));};exports[_0x4c90('0x41')]=function(_0x5f159b,_0x1acd7a){var _0x3437f5={'raw':!![],'where':{'id':_0x5f159b[_0x4c90('0x42')]['id']}},_0x34744a={};_0x34744a[_0x4c90('0x32')]=_[_0x4c90('0x30')](db[_0x4c90('0x2c')][_0x4c90('0x43')]);_0x34744a[_0x4c90('0x2f')]=_[_0x4c90('0x30')](_0x5f159b[_0x4c90('0x2f')]);_0x34744a[_0x4c90('0x44')]=_[_0x4c90('0x33')](_0x34744a[_0x4c90('0x32')],_0x34744a[_0x4c90('0x2f')]);_0x3437f5[_0x4c90('0x35')]=_[_0x4c90('0x33')](_0x34744a['model'],qs['fields'](_0x5f159b[_0x4c90('0x2f')][_0x4c90('0x34')]));_0x3437f5[_0x4c90('0x35')]=_0x3437f5['attributes'][_0x4c90('0x36')]?_0x3437f5[_0x4c90('0x35')]:_0x34744a[_0x4c90('0x32')];if(_0x5f159b['query'][_0x4c90('0x3d')]){_0x3437f5['include']=[{'all':!![]}];}_0x3437f5=_[_0x4c90('0x39')]({},_0x3437f5,_0x5f159b[_0x4c90('0x3c')]);return db['Variable'][_0x4c90('0x45')](_0x3437f5)['then'](handleEntityNotFound(_0x1acd7a,null))[_0x4c90('0x23')](respondWithResult(_0x1acd7a,null))[_0x4c90('0x46')](handleError(_0x1acd7a,null));};exports['create']=function(_0x44c5a6,_0x1b670b){return db[_0x4c90('0x2c')][_0x4c90('0x47')](_0x44c5a6[_0x4c90('0x48')],{})[_0x4c90('0x23')](function(_0x22ebfb){var _0x4389e5=_0x44c5a6[_0x4c90('0x49')][_0x4c90('0x25')]({'plain':!![]});if(!_0x4389e5)throw new Error(_0x4c90('0x4a'));if(_0x4389e5[_0x4c90('0x4b')]===_0x4c90('0x49')){var _0x3f0e5c=_0x22ebfb[_0x4c90('0x25')]({'plain':!![]});var _0x1818e5='Variables';return db[_0x4c90('0x4c')][_0x4c90('0x45')]({'where':{'name':_0x1818e5,'userProfileId':_0x4389e5['userProfileId']},'raw':!![]})[_0x4c90('0x23')](function(_0x3d27ec){if(_0x3d27ec&&_0x3d27ec[_0x4c90('0x4d')]===0x0){return db[_0x4c90('0x27')][_0x4c90('0x47')]({'name':_0x3f0e5c['name'],'resourceId':_0x3f0e5c['id'],'type':_0x3d27ec[_0x4c90('0x28')],'sectionId':_0x3d27ec['id']},{})[_0x4c90('0x23')](function(){return _0x22ebfb;});}else{return _0x22ebfb;}})[_0x4c90('0x46')](function(_0x1d13d0){logger[_0x4c90('0x4e')](_0x4c90('0x4f'),_0x1d13d0);throw _0x1d13d0;});}return _0x22ebfb;})[_0x4c90('0x23')](respondWithResult(_0x1b670b,0xc9))[_0x4c90('0x46')](handleError(_0x1b670b,null));};exports['update']=function(_0x91b44e,_0x319efb){if(_0x91b44e[_0x4c90('0x48')]['id']){delete _0x91b44e[_0x4c90('0x48')]['id'];}return db[_0x4c90('0x2c')]['find']({'where':{'id':_0x91b44e[_0x4c90('0x42')]['id']}})['then'](handleEntityNotFound(_0x319efb,null))[_0x4c90('0x23')](saveUpdates(_0x91b44e['body'],null))[_0x4c90('0x23')](respondWithResult(_0x319efb,null))[_0x4c90('0x46')](handleError(_0x319efb,null));};exports['destroy']=function(_0x49168c,_0x17b40f){return db[_0x4c90('0x2c')][_0x4c90('0x45')]({'where':{'id':_0x49168c[_0x4c90('0x42')]['id']}})[_0x4c90('0x23')](handleEntityNotFound(_0x17b40f,null))[_0x4c90('0x23')](removeEntity(_0x17b40f,null))[_0x4c90('0x46')](handleError(_0x17b40f,null));};