Built motion from commit 753c950e.|2.5.42
[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 _0x5124=['jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','undefined','count','offset','limit','status','set','Content-Range','apply','save','update','then','get','Variables','UserProfileResource','stack','name','map','Variable','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','include','findAll','rows','catch','show','params','rawAttributes','length','includeAll','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','error','body','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','lodash','squel'];(function(_0xa7a57b,_0x2de25b){var _0x3067a0=function(_0x384015){while(--_0x384015){_0xa7a57b['push'](_0xa7a57b['shift']());}};_0x3067a0(++_0x2de25b);}(_0x5124,0x1e1));var _0x4512=function(_0x30fc8f,_0x5809d5){_0x30fc8f=_0x30fc8f-0x0;var _0x27330a=_0x5124[_0x30fc8f];return _0x27330a;};'use strict';var emlformat=require(_0x4512('0x0'));var rimraf=require(_0x4512('0x1'));var zipdir=require(_0x4512('0x2'));var jsonpatch=require(_0x4512('0x3'));var rp=require(_0x4512('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x4512('0x5'));var util=require(_0x4512('0x6'));var path=require(_0x4512('0x7'));var sox=require(_0x4512('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4512('0x9'));var squel=require(_0x4512('0xa'));var crypto=require('crypto');var jsforce=require(_0x4512('0xb'));var deskjs=require(_0x4512('0xc'));var toCsv=require(_0x4512('0xd'));var querystring=require(_0x4512('0xe'));var Papa=require(_0x4512('0xf'));var Redis=require('ioredis');var authService=require(_0x4512('0x10'));var qs=require(_0x4512('0x11'));var as=require(_0x4512('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x4512('0x13'));var config=require(_0x4512('0x14'));var licenseUtil=require(_0x4512('0x15'));var db=require(_0x4512('0x16'))['db'];function respondWithStatusCode(_0x22dac3,_0x23ace8){_0x23ace8=_0x23ace8||0xcc;return function(_0x56280f){if(_0x56280f){return _0x22dac3[_0x4512('0x17')](_0x23ace8);}return _0x22dac3['status'](_0x23ace8)[_0x4512('0x18')]();};}function respondWithResult(_0x2b69e2,_0x55d0c6){_0x55d0c6=_0x55d0c6||0xc8;return function(_0x458415){if(_0x458415){return _0x2b69e2['status'](_0x55d0c6)[_0x4512('0x19')](_0x458415);}};}function respondWithFilteredResult(_0xd04b65,_0x5c3cd7){return function(_0x2e3c5b){if(_0x2e3c5b){var _0x12b17a=typeof _0x5c3cd7['offset']===_0x4512('0x1a')&&typeof _0x5c3cd7['limit']===_0x4512('0x1a');var _0xd469af=_0x2e3c5b[_0x4512('0x1b')];var _0x143be0=_0x12b17a?0x0:_0x5c3cd7['offset'];var _0x3471fc=_0x12b17a?_0x2e3c5b[_0x4512('0x1b')]:_0x5c3cd7[_0x4512('0x1c')]+_0x5c3cd7[_0x4512('0x1d')];var _0x1250ec;if(_0x3471fc>=_0xd469af){_0x3471fc=_0xd469af;_0x1250ec=0xc8;}else{_0x1250ec=0xce;}_0xd04b65[_0x4512('0x1e')](_0x1250ec);return _0xd04b65[_0x4512('0x1f')](_0x4512('0x20'),_0x143be0+'-'+_0x3471fc+'/'+_0xd469af)[_0x4512('0x19')](_0x2e3c5b);}return null;};}function patchUpdates(_0x3f57e0){return function(_0x349fc0){try{jsonpatch[_0x4512('0x21')](_0x349fc0,_0x3f57e0,!![]);}catch(_0x4953b6){return BPromise['reject'](_0x4953b6);}return _0x349fc0[_0x4512('0x22')]();};}function saveUpdates(_0x276e95,_0x53285e){return function(_0x55cb22){if(_0x55cb22){return _0x55cb22[_0x4512('0x23')](_0x276e95)[_0x4512('0x24')](function(_0xc3cc73){return _0xc3cc73;});}return null;};}function removeEntity(_0x3b6d67,_0x4502bc){return function(_0x4be492){if(_0x4be492){return _0x4be492['destroy']()['then'](function(){var _0x3cceae=_0x4be492[_0x4512('0x25')]({'plain':!![]});var _0xd38346=_0x4512('0x26');return db[_0x4512('0x27')]['destroy']({'where':{'type':_0xd38346,'resourceId':_0x3cceae['id']}})[_0x4512('0x24')](function(){return _0x4be492;});})[_0x4512('0x24')](function(){_0x3b6d67[_0x4512('0x1e')](0xcc)[_0x4512('0x18')]();});}};}function handleEntityNotFound(_0x39985d,_0x2a41a1){return function(_0xd0213f){if(!_0xd0213f){_0x39985d[_0x4512('0x17')](0x194);}return _0xd0213f;};}function handleError(_0x5cbfed,_0x2fb308){_0x2fb308=_0x2fb308||0x1f4;return function(_0x4786fd){logger['error'](_0x4786fd[_0x4512('0x28')]);if(_0x4786fd[_0x4512('0x29')]){delete _0x4786fd[_0x4512('0x29')];}_0x5cbfed[_0x4512('0x1e')](_0x2fb308)['send'](_0x4786fd);};}exports['index']=function(_0x5b93d8,_0xb0d26b){var _0x2ff29a={},_0x1f4938={},_0x353880={'count':0x0,'rows':[]};var _0xad8f8c=_[_0x4512('0x2a')](db[_0x4512('0x2b')]['rawAttributes'],function(_0xe4f0ed){return{'name':_0xe4f0ed[_0x4512('0x2c')],'type':_0xe4f0ed[_0x4512('0x2d')][_0x4512('0x2e')]};});_0x1f4938[_0x4512('0x2f')]=_[_0x4512('0x2a')](_0xad8f8c,_0x4512('0x29'));_0x1f4938[_0x4512('0x30')]=_[_0x4512('0x31')](_0x5b93d8['query']);_0x1f4938[_0x4512('0x32')]=_[_0x4512('0x33')](_0x1f4938[_0x4512('0x2f')],_0x1f4938[_0x4512('0x30')]);_0x2ff29a[_0x4512('0x34')]=_['intersection'](_0x1f4938['model'],qs[_0x4512('0x35')](_0x5b93d8[_0x4512('0x30')][_0x4512('0x35')]));_0x2ff29a['attributes']=_0x2ff29a[_0x4512('0x34')]['length']?_0x2ff29a[_0x4512('0x34')]:_0x1f4938[_0x4512('0x2f')];if(!_0x5b93d8[_0x4512('0x30')]['hasOwnProperty'](_0x4512('0x36'))){_0x2ff29a['limit']=qs[_0x4512('0x1d')](_0x5b93d8[_0x4512('0x30')][_0x4512('0x1d')]);_0x2ff29a[_0x4512('0x1c')]=qs[_0x4512('0x1c')](_0x5b93d8[_0x4512('0x30')]['offset']);}_0x2ff29a[_0x4512('0x37')]=qs[_0x4512('0x38')](_0x5b93d8[_0x4512('0x30')][_0x4512('0x38')]);_0x2ff29a[_0x4512('0x39')]=qs[_0x4512('0x32')](_[_0x4512('0x3a')](_0x5b93d8[_0x4512('0x30')],_0x1f4938[_0x4512('0x32')]),_0xad8f8c);if(_0x5b93d8[_0x4512('0x30')][_0x4512('0x3b')]){_0x2ff29a[_0x4512('0x39')]=_[_0x4512('0x3c')](_0x2ff29a[_0x4512('0x39')],{'$or':_[_0x4512('0x2a')](_0xad8f8c,function(_0x16e82d){if(_0x16e82d[_0x4512('0x2d')]!==_0x4512('0x3d')){var _0x1e17cb={};_0x1e17cb[_0x16e82d[_0x4512('0x29')]]={'$like':'%'+_0x5b93d8[_0x4512('0x30')][_0x4512('0x3b')]+'%'};return _0x1e17cb;}})});}_0x2ff29a=_[_0x4512('0x3c')]({},_0x2ff29a,_0x5b93d8['options']);var _0x4985b7={'where':_0x2ff29a[_0x4512('0x39')]};return db[_0x4512('0x2b')][_0x4512('0x1b')](_0x4985b7)[_0x4512('0x24')](function(_0x189011){_0x353880[_0x4512('0x1b')]=_0x189011;if(_0x5b93d8[_0x4512('0x30')]['includeAll']){_0x2ff29a[_0x4512('0x3e')]=[{'all':!![]}];}return db['Variable'][_0x4512('0x3f')](_0x2ff29a);})[_0x4512('0x24')](function(_0x33bf8e){_0x353880[_0x4512('0x40')]=_0x33bf8e;return _0x353880;})['then'](respondWithFilteredResult(_0xb0d26b,_0x2ff29a))[_0x4512('0x41')](handleError(_0xb0d26b,null));};exports[_0x4512('0x42')]=function(_0x312b4d,_0x1450b1){var _0x315883={'raw':!![],'where':{'id':_0x312b4d[_0x4512('0x43')]['id']}},_0xa3542d={};_0xa3542d[_0x4512('0x2f')]=_[_0x4512('0x31')](db[_0x4512('0x2b')][_0x4512('0x44')]);_0xa3542d[_0x4512('0x30')]=_['keys'](_0x312b4d[_0x4512('0x30')]);_0xa3542d['filters']=_[_0x4512('0x33')](_0xa3542d[_0x4512('0x2f')],_0xa3542d['query']);_0x315883['attributes']=_[_0x4512('0x33')](_0xa3542d['model'],qs[_0x4512('0x35')](_0x312b4d[_0x4512('0x30')][_0x4512('0x35')]));_0x315883[_0x4512('0x34')]=_0x315883['attributes'][_0x4512('0x45')]?_0x315883['attributes']:_0xa3542d[_0x4512('0x2f')];if(_0x312b4d[_0x4512('0x30')][_0x4512('0x46')]){_0x315883[_0x4512('0x3e')]=[{'all':!![]}];}_0x315883=_[_0x4512('0x3c')]({},_0x315883,_0x312b4d[_0x4512('0x47')]);return db[_0x4512('0x2b')][_0x4512('0x48')](_0x315883)[_0x4512('0x24')](handleEntityNotFound(_0x1450b1,null))[_0x4512('0x24')](respondWithResult(_0x1450b1,null))[_0x4512('0x41')](handleError(_0x1450b1,null));};exports[_0x4512('0x49')]=function(_0x316771,_0x3d4709){return db['Variable'][_0x4512('0x49')](_0x316771['body'],{})[_0x4512('0x24')](function(_0x56050c){var _0x213a04=_0x316771[_0x4512('0x4a')][_0x4512('0x25')]({'plain':!![]});if(!_0x213a04)throw new Error(_0x4512('0x4b'));if(_0x213a04[_0x4512('0x4c')]===_0x4512('0x4a')){var _0x35adab=_0x56050c['get']({'plain':!![]});var _0xa6857c=_0x4512('0x26');return db['UserProfileSection'][_0x4512('0x48')]({'where':{'name':_0xa6857c,'userProfileId':_0x213a04[_0x4512('0x4d')]},'raw':!![]})['then'](function(_0x32c2ff){if(_0x32c2ff&&_0x32c2ff[_0x4512('0x4e')]===0x0){return db[_0x4512('0x27')]['create']({'name':_0x35adab[_0x4512('0x29')],'resourceId':_0x35adab['id'],'type':_0x32c2ff[_0x4512('0x29')],'sectionId':_0x32c2ff['id']},{})[_0x4512('0x24')](function(){return _0x56050c;});}else{return _0x56050c;}})['catch'](function(_0x31b212){logger[_0x4512('0x4f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x31b212);throw _0x31b212;});}return _0x56050c;})[_0x4512('0x24')](respondWithResult(_0x3d4709,0xc9))[_0x4512('0x41')](handleError(_0x3d4709,null));};exports[_0x4512('0x23')]=function(_0x35a08,_0x577a80){if(_0x35a08['body']['id']){delete _0x35a08[_0x4512('0x50')]['id'];}return db[_0x4512('0x2b')]['find']({'where':{'id':_0x35a08['params']['id']}})[_0x4512('0x24')](handleEntityNotFound(_0x577a80,null))['then'](saveUpdates(_0x35a08[_0x4512('0x50')],null))[_0x4512('0x24')](respondWithResult(_0x577a80,null))[_0x4512('0x41')](handleError(_0x577a80,null));};exports[_0x4512('0x51')]=function(_0x5e18a9,_0x3f4e7c){return db['Variable'][_0x4512('0x48')]({'where':{'id':_0x5e18a9[_0x4512('0x43')]['id']}})[_0x4512('0x24')](handleEntityNotFound(_0x3f4e7c,null))[_0x4512('0x24')](removeEntity(_0x3f4e7c,null))[_0x4512('0x41')](handleError(_0x3f4e7c,null));};