9e01c9fc159f39c3f92ddbf2198597742c21e7a7
[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 _0xcad0=['attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','intersection','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','save','update','destroy','get','Variables','UserProfileResource','then','end','error','stack','name','send','map','Variable','rawAttributes','fieldName','key','query','keys','filters','model','fields'];(function(_0x93d69c,_0x443be4){var _0x4ebc83=function(_0x354c03){while(--_0x354c03){_0x93d69c['push'](_0x93d69c['shift']());}};_0x4ebc83(++_0x443be4);}(_0xcad0,0x1bc));var _0x0cad=function(_0x22fc06,_0x528b1f){_0x22fc06=_0x22fc06-0x0;var _0x3c3ed3=_0xcad0[_0x22fc06];return _0x3c3ed3;};'use strict';var emlformat=require(_0x0cad('0x0'));var rimraf=require(_0x0cad('0x1'));var zipdir=require(_0x0cad('0x2'));var jsonpatch=require(_0x0cad('0x3'));var rp=require(_0x0cad('0x4'));var moment=require('moment');var BPromise=require(_0x0cad('0x5'));var Mustache=require('mustache');var util=require(_0x0cad('0x6'));var path=require(_0x0cad('0x7'));var sox=require(_0x0cad('0x8'));var csv=require(_0x0cad('0x9'));var ejs=require(_0x0cad('0xa'));var fs=require('fs');var fs_extra=require(_0x0cad('0xb'));var _=require(_0x0cad('0xc'));var squel=require(_0x0cad('0xd'));var crypto=require(_0x0cad('0xe'));var jsforce=require(_0x0cad('0xf'));var deskjs=require(_0x0cad('0x10'));var toCsv=require('to-csv');var querystring=require(_0x0cad('0x11'));var Papa=require(_0x0cad('0x12'));var Redis=require(_0x0cad('0x13'));var authService=require(_0x0cad('0x14'));var qs=require(_0x0cad('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0cad('0x16'));var logger=require(_0x0cad('0x17'))(_0x0cad('0x18'));var utils=require(_0x0cad('0x19'));var config=require(_0x0cad('0x1a'));var licenseUtil=require(_0x0cad('0x1b'));var db=require(_0x0cad('0x1c'))['db'];function respondWithStatusCode(_0x2dc9d2,_0x3971b2){_0x3971b2=_0x3971b2||0xcc;return function(_0x17ecea){if(_0x17ecea){return _0x2dc9d2[_0x0cad('0x1d')](_0x3971b2);}return _0x2dc9d2[_0x0cad('0x1e')](_0x3971b2)['end']();};}function respondWithResult(_0x40c777,_0x3fa17f){_0x3fa17f=_0x3fa17f||0xc8;return function(_0x150a81){if(_0x150a81){return _0x40c777[_0x0cad('0x1e')](_0x3fa17f)[_0x0cad('0x1f')](_0x150a81);}};}function respondWithFilteredResult(_0xa264c2,_0x260af0){return function(_0x507c0c){if(_0x507c0c){var _0x53dfd2=typeof _0x260af0[_0x0cad('0x20')]===_0x0cad('0x21')&&typeof _0x260af0[_0x0cad('0x22')]===_0x0cad('0x21');var _0x3772c2=_0x507c0c[_0x0cad('0x23')];var _0x57e484=_0x53dfd2?0x0:_0x260af0[_0x0cad('0x20')];var _0x259739=_0x53dfd2?_0x507c0c[_0x0cad('0x23')]:_0x260af0[_0x0cad('0x20')]+_0x260af0[_0x0cad('0x22')];var _0x3a96ff;if(_0x259739>=_0x3772c2){_0x259739=_0x3772c2;_0x3a96ff=0xc8;}else{_0x3a96ff=0xce;}_0xa264c2['status'](_0x3a96ff);return _0xa264c2[_0x0cad('0x24')](_0x0cad('0x25'),_0x57e484+'-'+_0x259739+'/'+_0x3772c2)[_0x0cad('0x1f')](_0x507c0c);}return null;};}function patchUpdates(_0x1cd168){return function(_0x5d35f9){try{jsonpatch['apply'](_0x5d35f9,_0x1cd168,!![]);}catch(_0x317487){return BPromise['reject'](_0x317487);}return _0x5d35f9[_0x0cad('0x26')]();};}function saveUpdates(_0x13a91e,_0x1ce28a){return function(_0x3ec4e7){if(_0x3ec4e7){return _0x3ec4e7[_0x0cad('0x27')](_0x13a91e)['then'](function(_0x5039ef){return _0x5039ef;});}return null;};}function removeEntity(_0x2e002e,_0x584cff){return function(_0x59be8){if(_0x59be8){return _0x59be8[_0x0cad('0x28')]()['then'](function(){var _0x30156e=_0x59be8[_0x0cad('0x29')]({'plain':!![]});var _0x53b2ca=_0x0cad('0x2a');return db[_0x0cad('0x2b')][_0x0cad('0x28')]({'where':{'type':_0x53b2ca,'resourceId':_0x30156e['id']}})['then'](function(){return _0x59be8;});})[_0x0cad('0x2c')](function(){_0x2e002e[_0x0cad('0x1e')](0xcc)[_0x0cad('0x2d')]();});}};}function handleEntityNotFound(_0x3fa507,_0x49ab50){return function(_0x4612f9){if(!_0x4612f9){_0x3fa507[_0x0cad('0x1d')](0x194);}return _0x4612f9;};}function handleError(_0x13d91e,_0x2ddb88){_0x2ddb88=_0x2ddb88||0x1f4;return function(_0x32ab0d){logger[_0x0cad('0x2e')](_0x32ab0d[_0x0cad('0x2f')]);if(_0x32ab0d[_0x0cad('0x30')]){delete _0x32ab0d[_0x0cad('0x30')];}_0x13d91e['status'](_0x2ddb88)[_0x0cad('0x31')](_0x32ab0d);};}exports['index']=function(_0xeec30b,_0x13cef0){var _0x1432be={},_0x1d7580={},_0x4533e5={'count':0x0,'rows':[]};var _0x26ca45=_[_0x0cad('0x32')](db[_0x0cad('0x33')][_0x0cad('0x34')],function(_0x229fdc){return{'name':_0x229fdc[_0x0cad('0x35')],'type':_0x229fdc['type'][_0x0cad('0x36')]};});_0x1d7580['model']=_[_0x0cad('0x32')](_0x26ca45,_0x0cad('0x30'));_0x1d7580[_0x0cad('0x37')]=_[_0x0cad('0x38')](_0xeec30b['query']);_0x1d7580[_0x0cad('0x39')]=_['intersection'](_0x1d7580[_0x0cad('0x3a')],_0x1d7580[_0x0cad('0x37')]);_0x1432be['attributes']=_['intersection'](_0x1d7580[_0x0cad('0x3a')],qs[_0x0cad('0x3b')](_0xeec30b[_0x0cad('0x37')][_0x0cad('0x3b')]));_0x1432be[_0x0cad('0x3c')]=_0x1432be[_0x0cad('0x3c')][_0x0cad('0x3d')]?_0x1432be[_0x0cad('0x3c')]:_0x1d7580[_0x0cad('0x3a')];if(!_0xeec30b[_0x0cad('0x37')][_0x0cad('0x3e')](_0x0cad('0x3f'))){_0x1432be[_0x0cad('0x22')]=qs[_0x0cad('0x22')](_0xeec30b['query'][_0x0cad('0x22')]);_0x1432be['offset']=qs['offset'](_0xeec30b[_0x0cad('0x37')][_0x0cad('0x20')]);}_0x1432be[_0x0cad('0x40')]=qs[_0x0cad('0x41')](_0xeec30b[_0x0cad('0x37')][_0x0cad('0x41')]);_0x1432be[_0x0cad('0x42')]=qs[_0x0cad('0x39')](_[_0x0cad('0x43')](_0xeec30b[_0x0cad('0x37')],_0x1d7580[_0x0cad('0x39')]),_0x26ca45);if(_0xeec30b[_0x0cad('0x37')][_0x0cad('0x44')]){_0x1432be['where']=_[_0x0cad('0x45')](_0x1432be[_0x0cad('0x42')],{'$or':_[_0x0cad('0x32')](_0x26ca45,function(_0x47c059){if(_0x47c059['type']!==_0x0cad('0x46')){var _0x4118d9={};_0x4118d9[_0x47c059[_0x0cad('0x30')]]={'$like':'%'+_0xeec30b['query'][_0x0cad('0x44')]+'%'};return _0x4118d9;}})});}_0x1432be=_[_0x0cad('0x45')]({},_0x1432be,_0xeec30b[_0x0cad('0x47')]);var _0x4293c3={'where':_0x1432be[_0x0cad('0x42')]};return db['Variable'][_0x0cad('0x23')](_0x4293c3)[_0x0cad('0x2c')](function(_0x1c0f20){_0x4533e5['count']=_0x1c0f20;if(_0xeec30b[_0x0cad('0x37')][_0x0cad('0x48')]){_0x1432be['include']=[{'all':!![]}];}return db['Variable']['findAll'](_0x1432be);})['then'](function(_0x4177b9){_0x4533e5['rows']=_0x4177b9;return _0x4533e5;})[_0x0cad('0x2c')](respondWithFilteredResult(_0x13cef0,_0x1432be))['catch'](handleError(_0x13cef0,null));};exports['show']=function(_0x18ddc4,_0x3e0c98){var _0x3dae47={'raw':!![],'where':{'id':_0x18ddc4['params']['id']}},_0x2e9c15={};_0x2e9c15[_0x0cad('0x3a')]=_[_0x0cad('0x38')](db['Variable'][_0x0cad('0x34')]);_0x2e9c15['query']=_[_0x0cad('0x38')](_0x18ddc4[_0x0cad('0x37')]);_0x2e9c15['filters']=_[_0x0cad('0x49')](_0x2e9c15['model'],_0x2e9c15[_0x0cad('0x37')]);_0x3dae47[_0x0cad('0x3c')]=_[_0x0cad('0x49')](_0x2e9c15[_0x0cad('0x3a')],qs[_0x0cad('0x3b')](_0x18ddc4['query'][_0x0cad('0x3b')]));_0x3dae47[_0x0cad('0x3c')]=_0x3dae47[_0x0cad('0x3c')][_0x0cad('0x3d')]?_0x3dae47[_0x0cad('0x3c')]:_0x2e9c15[_0x0cad('0x3a')];if(_0x18ddc4[_0x0cad('0x37')]['includeAll']){_0x3dae47['include']=[{'all':!![]}];}_0x3dae47=_['merge']({},_0x3dae47,_0x18ddc4[_0x0cad('0x47')]);return db[_0x0cad('0x33')][_0x0cad('0x4a')](_0x3dae47)[_0x0cad('0x2c')](handleEntityNotFound(_0x3e0c98,null))[_0x0cad('0x2c')](respondWithResult(_0x3e0c98,null))[_0x0cad('0x4b')](handleError(_0x3e0c98,null));};exports[_0x0cad('0x4c')]=function(_0x22b6ee,_0x22d7ec){return db[_0x0cad('0x33')][_0x0cad('0x4c')](_0x22b6ee[_0x0cad('0x4d')],{})['then'](function(_0x523e4d){var _0x1939b0=_0x22b6ee[_0x0cad('0x4e')]['get']({'plain':!![]});if(!_0x1939b0)throw new Error(_0x0cad('0x4f'));if(_0x1939b0[_0x0cad('0x50')]===_0x0cad('0x4e')){var _0x3da9bd=_0x523e4d['get']({'plain':!![]});var _0x1b187d='Variables';return db['UserProfileSection']['find']({'where':{'name':_0x1b187d,'userProfileId':_0x1939b0[_0x0cad('0x51')]},'raw':!![]})[_0x0cad('0x2c')](function(_0x193335){if(_0x193335&&_0x193335[_0x0cad('0x52')]===0x0){return db[_0x0cad('0x2b')]['create']({'name':_0x3da9bd[_0x0cad('0x30')],'resourceId':_0x3da9bd['id'],'type':_0x193335['name'],'sectionId':_0x193335['id']},{})[_0x0cad('0x2c')](function(){return _0x523e4d;});}else{return _0x523e4d;}})[_0x0cad('0x4b')](function(_0x4112bc){logger[_0x0cad('0x2e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4112bc);throw _0x4112bc;});}return _0x523e4d;})[_0x0cad('0x2c')](respondWithResult(_0x22d7ec,0xc9))[_0x0cad('0x4b')](handleError(_0x22d7ec,null));};exports[_0x0cad('0x27')]=function(_0x2cb9f7,_0x1416da){if(_0x2cb9f7[_0x0cad('0x4d')]['id']){delete _0x2cb9f7[_0x0cad('0x4d')]['id'];}return db['Variable']['find']({'where':{'id':_0x2cb9f7[_0x0cad('0x53')]['id']}})[_0x0cad('0x2c')](handleEntityNotFound(_0x1416da,null))[_0x0cad('0x2c')](saveUpdates(_0x2cb9f7[_0x0cad('0x4d')],null))[_0x0cad('0x2c')](respondWithResult(_0x1416da,null))[_0x0cad('0x4b')](handleError(_0x1416da,null));};exports[_0x0cad('0x28')]=function(_0x15367e,_0x2e1d99){return db['Variable'][_0x0cad('0x4a')]({'where':{'id':_0x15367e[_0x0cad('0x53')]['id']}})['then'](handleEntityNotFound(_0x2e1d99,null))[_0x0cad('0x2c')](removeEntity(_0x2e1d99,null))[_0x0cad('0x4b')](handleError(_0x2e1d99,null));};