213b510194c549c027d115a009c8fd9e1b75f94f
[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 _0xeb83=['save','then','destroy','UserProfileResource','sendStatus','stack','name','send','map','Variable','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','fields','length','includeAll','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Variables','UserProfileSection','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','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','status','end','json','offset','undefined','limit','count','set','Content-Range','apply'];(function(_0xf48cce,_0x3531e4){var _0x2a5c38=function(_0x22a454){while(--_0x22a454){_0xf48cce['push'](_0xf48cce['shift']());}};_0x2a5c38(++_0x3531e4);}(_0xeb83,0x1e7));var _0x3eb8=function(_0x1ab14e,_0x57a55f){_0x1ab14e=_0x1ab14e-0x0;var _0x12ef39=_0xeb83[_0x1ab14e];return _0x12ef39;};'use strict';var emlformat=require(_0x3eb8('0x0'));var rimraf=require(_0x3eb8('0x1'));var zipdir=require(_0x3eb8('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3eb8('0x3'));var moment=require(_0x3eb8('0x4'));var BPromise=require(_0x3eb8('0x5'));var Mustache=require(_0x3eb8('0x6'));var util=require(_0x3eb8('0x7'));var path=require('path');var sox=require(_0x3eb8('0x8'));var csv=require(_0x3eb8('0x9'));var ejs=require(_0x3eb8('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3eb8('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x3eb8('0xc'));var deskjs=require(_0x3eb8('0xd'));var toCsv=require(_0x3eb8('0x9'));var querystring=require(_0x3eb8('0xe'));var Papa=require(_0x3eb8('0xf'));var Redis=require(_0x3eb8('0x10'));var authService=require(_0x3eb8('0x11'));var qs=require(_0x3eb8('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3eb8('0x13'));var logger=require(_0x3eb8('0x14'))(_0x3eb8('0x15'));var utils=require(_0x3eb8('0x16'));var config=require(_0x3eb8('0x17'));var licenseUtil=require(_0x3eb8('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x544339,_0x12bf83){_0x12bf83=_0x12bf83||0xcc;return function(_0x336ee6){if(_0x336ee6){return _0x544339['sendStatus'](_0x12bf83);}return _0x544339[_0x3eb8('0x19')](_0x12bf83)[_0x3eb8('0x1a')]();};}function respondWithResult(_0x123292,_0x367d37){_0x367d37=_0x367d37||0xc8;return function(_0x565508){if(_0x565508){return _0x123292[_0x3eb8('0x19')](_0x367d37)[_0x3eb8('0x1b')](_0x565508);}};}function respondWithFilteredResult(_0x3658f7,_0x34f1af){return function(_0x2710dc){if(_0x2710dc){var _0x877b91=typeof _0x34f1af[_0x3eb8('0x1c')]===_0x3eb8('0x1d')&&typeof _0x34f1af[_0x3eb8('0x1e')]===_0x3eb8('0x1d');var _0x1b7956=_0x2710dc[_0x3eb8('0x1f')];var _0x3e58cc=_0x877b91?0x0:_0x34f1af['offset'];var _0x36bd64=_0x877b91?_0x2710dc['count']:_0x34f1af[_0x3eb8('0x1c')]+_0x34f1af[_0x3eb8('0x1e')];var _0x186084;if(_0x36bd64>=_0x1b7956){_0x36bd64=_0x1b7956;_0x186084=0xc8;}else{_0x186084=0xce;}_0x3658f7[_0x3eb8('0x19')](_0x186084);return _0x3658f7[_0x3eb8('0x20')](_0x3eb8('0x21'),_0x3e58cc+'-'+_0x36bd64+'/'+_0x1b7956)['json'](_0x2710dc);}return null;};}function patchUpdates(_0x3500a7){return function(_0x5b38e8){try{jsonpatch[_0x3eb8('0x22')](_0x5b38e8,_0x3500a7,!![]);}catch(_0x3835dd){return BPromise['reject'](_0x3835dd);}return _0x5b38e8[_0x3eb8('0x23')]();};}function saveUpdates(_0x1a2a7d,_0x11b19f){return function(_0x5e33b0){if(_0x5e33b0){return _0x5e33b0['update'](_0x1a2a7d)[_0x3eb8('0x24')](function(_0x714c32){return _0x714c32;});}return null;};}function removeEntity(_0x174b82,_0x4a0642){return function(_0x1523fb){if(_0x1523fb){return _0x1523fb[_0x3eb8('0x25')]()[_0x3eb8('0x24')](function(){var _0x2bece2=_0x1523fb['get']({'plain':!![]});var _0x529403='Variables';return db[_0x3eb8('0x26')][_0x3eb8('0x25')]({'where':{'type':_0x529403,'resourceId':_0x2bece2['id']}})['then'](function(){return _0x1523fb;});})['then'](function(){_0x174b82[_0x3eb8('0x19')](0xcc)[_0x3eb8('0x1a')]();});}};}function handleEntityNotFound(_0x2e16c5,_0x1b112b){return function(_0x4eef60){if(!_0x4eef60){_0x2e16c5[_0x3eb8('0x27')](0x194);}return _0x4eef60;};}function handleError(_0x184fcc,_0x1dc2ae){_0x1dc2ae=_0x1dc2ae||0x1f4;return function(_0x53727f){logger['error'](_0x53727f[_0x3eb8('0x28')]);if(_0x53727f[_0x3eb8('0x29')]){delete _0x53727f[_0x3eb8('0x29')];}_0x184fcc[_0x3eb8('0x19')](_0x1dc2ae)[_0x3eb8('0x2a')](_0x53727f);};}exports['index']=function(_0xfd68d4,_0x30ee10){var _0x29d836={},_0x56c2b4={},_0x69a7b7={'count':0x0,'rows':[]};var _0x36c6ce=_[_0x3eb8('0x2b')](db[_0x3eb8('0x2c')][_0x3eb8('0x2d')],function(_0xc325fa){return{'name':_0xc325fa[_0x3eb8('0x2e')],'type':_0xc325fa[_0x3eb8('0x2f')][_0x3eb8('0x30')]};});_0x56c2b4[_0x3eb8('0x31')]=_[_0x3eb8('0x2b')](_0x36c6ce,_0x3eb8('0x29'));_0x56c2b4[_0x3eb8('0x32')]=_[_0x3eb8('0x33')](_0xfd68d4[_0x3eb8('0x32')]);_0x56c2b4['filters']=_[_0x3eb8('0x34')](_0x56c2b4['model'],_0x56c2b4[_0x3eb8('0x32')]);_0x29d836[_0x3eb8('0x35')]=_['intersection'](_0x56c2b4[_0x3eb8('0x31')],qs['fields'](_0xfd68d4[_0x3eb8('0x32')]['fields']));_0x29d836[_0x3eb8('0x35')]=_0x29d836['attributes']['length']?_0x29d836['attributes']:_0x56c2b4[_0x3eb8('0x31')];if(!_0xfd68d4[_0x3eb8('0x32')][_0x3eb8('0x36')](_0x3eb8('0x37'))){_0x29d836['limit']=qs[_0x3eb8('0x1e')](_0xfd68d4[_0x3eb8('0x32')][_0x3eb8('0x1e')]);_0x29d836['offset']=qs['offset'](_0xfd68d4[_0x3eb8('0x32')][_0x3eb8('0x1c')]);}_0x29d836[_0x3eb8('0x38')]=qs[_0x3eb8('0x39')](_0xfd68d4[_0x3eb8('0x32')][_0x3eb8('0x39')]);_0x29d836[_0x3eb8('0x3a')]=qs[_0x3eb8('0x3b')](_[_0x3eb8('0x3c')](_0xfd68d4[_0x3eb8('0x32')],_0x56c2b4[_0x3eb8('0x3b')]),_0x36c6ce);if(_0xfd68d4[_0x3eb8('0x32')][_0x3eb8('0x3d')]){_0x29d836[_0x3eb8('0x3a')]=_[_0x3eb8('0x3e')](_0x29d836[_0x3eb8('0x3a')],{'$or':_[_0x3eb8('0x2b')](_0x36c6ce,function(_0x24014d){if(_0x24014d[_0x3eb8('0x2f')]!==_0x3eb8('0x3f')){var _0xa3b30a={};_0xa3b30a[_0x24014d[_0x3eb8('0x29')]]={'$like':'%'+_0xfd68d4[_0x3eb8('0x32')][_0x3eb8('0x3d')]+'%'};return _0xa3b30a;}})});}_0x29d836=_['merge']({},_0x29d836,_0xfd68d4[_0x3eb8('0x40')]);var _0xbc17c3={'where':_0x29d836['where']};return db[_0x3eb8('0x2c')][_0x3eb8('0x1f')](_0xbc17c3)[_0x3eb8('0x24')](function(_0x3618a0){_0x69a7b7['count']=_0x3618a0;if(_0xfd68d4[_0x3eb8('0x32')]['includeAll']){_0x29d836[_0x3eb8('0x41')]=[{'all':!![]}];}return db['Variable'][_0x3eb8('0x42')](_0x29d836);})[_0x3eb8('0x24')](function(_0x54ac16){_0x69a7b7[_0x3eb8('0x43')]=_0x54ac16;return _0x69a7b7;})[_0x3eb8('0x24')](respondWithFilteredResult(_0x30ee10,_0x29d836))[_0x3eb8('0x44')](handleError(_0x30ee10,null));};exports[_0x3eb8('0x45')]=function(_0x5d5959,_0x7663bd){var _0x1bca7e={'raw':!![],'where':{'id':_0x5d5959['params']['id']}},_0x368a31={};_0x368a31[_0x3eb8('0x31')]=_[_0x3eb8('0x33')](db['Variable'][_0x3eb8('0x2d')]);_0x368a31[_0x3eb8('0x32')]=_[_0x3eb8('0x33')](_0x5d5959['query']);_0x368a31['filters']=_[_0x3eb8('0x34')](_0x368a31[_0x3eb8('0x31')],_0x368a31[_0x3eb8('0x32')]);_0x1bca7e[_0x3eb8('0x35')]=_[_0x3eb8('0x34')](_0x368a31[_0x3eb8('0x31')],qs[_0x3eb8('0x46')](_0x5d5959[_0x3eb8('0x32')]['fields']));_0x1bca7e['attributes']=_0x1bca7e[_0x3eb8('0x35')][_0x3eb8('0x47')]?_0x1bca7e[_0x3eb8('0x35')]:_0x368a31[_0x3eb8('0x31')];if(_0x5d5959[_0x3eb8('0x32')][_0x3eb8('0x48')]){_0x1bca7e[_0x3eb8('0x41')]=[{'all':!![]}];}_0x1bca7e=_[_0x3eb8('0x3e')]({},_0x1bca7e,_0x5d5959[_0x3eb8('0x40')]);return db['Variable'][_0x3eb8('0x49')](_0x1bca7e)[_0x3eb8('0x24')](handleEntityNotFound(_0x7663bd,null))['then'](respondWithResult(_0x7663bd,null))['catch'](handleError(_0x7663bd,null));};exports[_0x3eb8('0x4a')]=function(_0x4331c2,_0x5c9f7d){return db['Variable']['create'](_0x4331c2[_0x3eb8('0x4b')],{})[_0x3eb8('0x24')](function(_0x3feeae){var _0x1e9ce5=_0x4331c2[_0x3eb8('0x4c')][_0x3eb8('0x4d')]({'plain':!![]});if(!_0x1e9ce5)throw new Error(_0x3eb8('0x4e'));if(_0x1e9ce5[_0x3eb8('0x4f')]===_0x3eb8('0x4c')){var _0x1f49ab=_0x3feeae[_0x3eb8('0x4d')]({'plain':!![]});var _0x57421f=_0x3eb8('0x50');return db[_0x3eb8('0x51')]['find']({'where':{'name':_0x57421f,'userProfileId':_0x1e9ce5['userProfileId']},'raw':!![]})['then'](function(_0x17bf4e){if(_0x17bf4e&&_0x17bf4e[_0x3eb8('0x52')]===0x0){return db[_0x3eb8('0x26')][_0x3eb8('0x4a')]({'name':_0x1f49ab[_0x3eb8('0x29')],'resourceId':_0x1f49ab['id'],'type':_0x17bf4e[_0x3eb8('0x29')],'sectionId':_0x17bf4e['id']},{})[_0x3eb8('0x24')](function(){return _0x3feeae;});}else{return _0x3feeae;}})['catch'](function(_0x3e6dc9){logger[_0x3eb8('0x53')](_0x3eb8('0x54'),_0x3e6dc9);throw _0x3e6dc9;});}return _0x3feeae;})[_0x3eb8('0x24')](respondWithResult(_0x5c9f7d,0xc9))[_0x3eb8('0x44')](handleError(_0x5c9f7d,null));};exports[_0x3eb8('0x55')]=function(_0x4fa8c6,_0x17e975){if(_0x4fa8c6[_0x3eb8('0x4b')]['id']){delete _0x4fa8c6[_0x3eb8('0x4b')]['id'];}return db[_0x3eb8('0x2c')][_0x3eb8('0x49')]({'where':{'id':_0x4fa8c6[_0x3eb8('0x56')]['id']}})[_0x3eb8('0x24')](handleEntityNotFound(_0x17e975,null))[_0x3eb8('0x24')](saveUpdates(_0x4fa8c6[_0x3eb8('0x4b')],null))[_0x3eb8('0x24')](respondWithResult(_0x17e975,null))[_0x3eb8('0x44')](handleError(_0x17e975,null));};exports[_0x3eb8('0x25')]=function(_0x4baaea,_0x347867){return db[_0x3eb8('0x2c')][_0x3eb8('0x49')]({'where':{'id':_0x4baaea[_0x3eb8('0x56')]['id']}})[_0x3eb8('0x24')](handleEntityNotFound(_0x347867,null))['then'](removeEntity(_0x347867,null))[_0x3eb8('0x44')](handleError(_0x347867,null));};