Built motion from commit c116dc8b.|2.6.30
[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 _0xe960=['count','apply','save','update','then','destroy','get','Variables','UserProfileResource','error','stack','name','send','index','Variable','rawAttributes','type','model','map','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','options','rows','catch','show','params','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined'];(function(_0x3cb6dc,_0x120dd3){var _0x47ec89=function(_0x55150a){while(--_0x55150a){_0x3cb6dc['push'](_0x3cb6dc['shift']());}};_0x47ec89(++_0x120dd3);}(_0xe960,0xce));var _0x0e96=function(_0x3547a8,_0x4d46f6){_0x3547a8=_0x3547a8-0x0;var _0x485c5f=_0xe960[_0x3547a8];return _0x485c5f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0e96('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0e96('0x1'));var rp=require(_0x0e96('0x2'));var moment=require(_0x0e96('0x3'));var BPromise=require(_0x0e96('0x4'));var Mustache=require(_0x0e96('0x5'));var util=require(_0x0e96('0x6'));var path=require(_0x0e96('0x7'));var sox=require(_0x0e96('0x8'));var csv=require(_0x0e96('0x9'));var ejs=require(_0x0e96('0xa'));var fs=require('fs');var fs_extra=require(_0x0e96('0xb'));var _=require('lodash');var squel=require(_0x0e96('0xc'));var crypto=require(_0x0e96('0xd'));var jsforce=require(_0x0e96('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x0e96('0x9'));var querystring=require(_0x0e96('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x0e96('0x10'));var as=require(_0x0e96('0x11'));var hardwareService=require(_0x0e96('0x12'));var logger=require(_0x0e96('0x13'))(_0x0e96('0x14'));var utils=require(_0x0e96('0x15'));var config=require(_0x0e96('0x16'));var licenseUtil=require(_0x0e96('0x17'));var db=require(_0x0e96('0x18'))['db'];function respondWithStatusCode(_0x53fed2,_0xd9b86d){_0xd9b86d=_0xd9b86d||0xcc;return function(_0x43bb66){if(_0x43bb66){return _0x53fed2[_0x0e96('0x19')](_0xd9b86d);}return _0x53fed2[_0x0e96('0x1a')](_0xd9b86d)[_0x0e96('0x1b')]();};}function respondWithResult(_0x108ee9,_0x508797){_0x508797=_0x508797||0xc8;return function(_0x51df7a){if(_0x51df7a){return _0x108ee9[_0x0e96('0x1a')](_0x508797)[_0x0e96('0x1c')](_0x51df7a);}};}function respondWithFilteredResult(_0x411dc7,_0x429281){return function(_0x447330){if(_0x447330){var _0x47b2b8=typeof _0x429281[_0x0e96('0x1d')]==='undefined'&&typeof _0x429281['limit']===_0x0e96('0x1e');var _0x86ba1c=_0x447330[_0x0e96('0x1f')];var _0x38ea52=_0x47b2b8?0x0:_0x429281[_0x0e96('0x1d')];var _0x23de2c=_0x47b2b8?_0x447330[_0x0e96('0x1f')]:_0x429281[_0x0e96('0x1d')]+_0x429281['limit'];var _0x4ecc72;if(_0x23de2c>=_0x86ba1c){_0x23de2c=_0x86ba1c;_0x4ecc72=0xc8;}else{_0x4ecc72=0xce;}_0x411dc7[_0x0e96('0x1a')](_0x4ecc72);return _0x411dc7['set']('Content-Range',_0x38ea52+'-'+_0x23de2c+'/'+_0x86ba1c)[_0x0e96('0x1c')](_0x447330);}return null;};}function patchUpdates(_0x31a614){return function(_0x3fb9a3){try{jsonpatch[_0x0e96('0x20')](_0x3fb9a3,_0x31a614,!![]);}catch(_0x2ed23){return BPromise['reject'](_0x2ed23);}return _0x3fb9a3[_0x0e96('0x21')]();};}function saveUpdates(_0x586abc,_0x18aaff){return function(_0x10f1cb){if(_0x10f1cb){return _0x10f1cb[_0x0e96('0x22')](_0x586abc)[_0x0e96('0x23')](function(_0x2b2724){return _0x2b2724;});}return null;};}function removeEntity(_0xe78c73,_0xbe6621){return function(_0x2736fd){if(_0x2736fd){return _0x2736fd[_0x0e96('0x24')]()[_0x0e96('0x23')](function(){var _0x1be56e=_0x2736fd[_0x0e96('0x25')]({'plain':!![]});var _0xf69a13=_0x0e96('0x26');return db[_0x0e96('0x27')][_0x0e96('0x24')]({'where':{'type':_0xf69a13,'resourceId':_0x1be56e['id']}})[_0x0e96('0x23')](function(){return _0x2736fd;});})['then'](function(){_0xe78c73[_0x0e96('0x1a')](0xcc)[_0x0e96('0x1b')]();});}};}function handleEntityNotFound(_0xd012bc,_0x1b8887){return function(_0x359aa1){if(!_0x359aa1){_0xd012bc[_0x0e96('0x19')](0x194);}return _0x359aa1;};}function handleError(_0x5117c8,_0x5adf65){_0x5adf65=_0x5adf65||0x1f4;return function(_0x24aaa7){logger[_0x0e96('0x28')](_0x24aaa7[_0x0e96('0x29')]);if(_0x24aaa7[_0x0e96('0x2a')]){delete _0x24aaa7[_0x0e96('0x2a')];}_0x5117c8[_0x0e96('0x1a')](_0x5adf65)[_0x0e96('0x2b')](_0x24aaa7);};}exports[_0x0e96('0x2c')]=function(_0x839df,_0x3a6c20){var _0x2f2e03={},_0x5d7143={},_0x2e08fa={'count':0x0,'rows':[]};var _0x2cf368=_['map'](db[_0x0e96('0x2d')][_0x0e96('0x2e')],function(_0x387d6f){return{'name':_0x387d6f['fieldName'],'type':_0x387d6f[_0x0e96('0x2f')]['key']};});_0x5d7143[_0x0e96('0x30')]=_[_0x0e96('0x31')](_0x2cf368,'name');_0x5d7143['query']=_[_0x0e96('0x32')](_0x839df[_0x0e96('0x33')]);_0x5d7143[_0x0e96('0x34')]=_[_0x0e96('0x35')](_0x5d7143[_0x0e96('0x30')],_0x5d7143[_0x0e96('0x33')]);_0x2f2e03[_0x0e96('0x36')]=_[_0x0e96('0x35')](_0x5d7143[_0x0e96('0x30')],qs[_0x0e96('0x37')](_0x839df[_0x0e96('0x33')]['fields']));_0x2f2e03['attributes']=_0x2f2e03[_0x0e96('0x36')]['length']?_0x2f2e03[_0x0e96('0x36')]:_0x5d7143[_0x0e96('0x30')];if(!_0x839df[_0x0e96('0x33')][_0x0e96('0x38')](_0x0e96('0x39'))){_0x2f2e03[_0x0e96('0x3a')]=qs[_0x0e96('0x3a')](_0x839df[_0x0e96('0x33')][_0x0e96('0x3a')]);_0x2f2e03[_0x0e96('0x1d')]=qs[_0x0e96('0x1d')](_0x839df['query'][_0x0e96('0x1d')]);}_0x2f2e03[_0x0e96('0x3b')]=qs[_0x0e96('0x3c')](_0x839df[_0x0e96('0x33')][_0x0e96('0x3c')]);_0x2f2e03['where']=qs[_0x0e96('0x34')](_[_0x0e96('0x3d')](_0x839df[_0x0e96('0x33')],_0x5d7143[_0x0e96('0x34')]),_0x2cf368);if(_0x839df['query'][_0x0e96('0x3e')]){_0x2f2e03[_0x0e96('0x3f')]=_[_0x0e96('0x40')](_0x2f2e03[_0x0e96('0x3f')],{'$or':_[_0x0e96('0x31')](_0x2cf368,function(_0x7aa403){if(_0x7aa403['type']!=='VIRTUAL'){var _0x27b0e9={};_0x27b0e9[_0x7aa403[_0x0e96('0x2a')]]={'$like':'%'+_0x839df['query'][_0x0e96('0x3e')]+'%'};return _0x27b0e9;}})});}_0x2f2e03=_['merge']({},_0x2f2e03,_0x839df[_0x0e96('0x41')]);var _0x48a62f={'where':_0x2f2e03[_0x0e96('0x3f')]};return db['Variable'][_0x0e96('0x1f')](_0x48a62f)[_0x0e96('0x23')](function(_0x562166){_0x2e08fa[_0x0e96('0x1f')]=_0x562166;if(_0x839df[_0x0e96('0x33')]['includeAll']){_0x2f2e03['include']=[{'all':!![]}];}return db[_0x0e96('0x2d')]['findAll'](_0x2f2e03);})['then'](function(_0x5d4892){_0x2e08fa[_0x0e96('0x42')]=_0x5d4892;return _0x2e08fa;})[_0x0e96('0x23')](respondWithFilteredResult(_0x3a6c20,_0x2f2e03))[_0x0e96('0x43')](handleError(_0x3a6c20,null));};exports[_0x0e96('0x44')]=function(_0x7aaef,_0x224e94){var _0x469b23={'raw':!![],'where':{'id':_0x7aaef[_0x0e96('0x45')]['id']}},_0x7a704e={};_0x7a704e[_0x0e96('0x30')]=_[_0x0e96('0x32')](db[_0x0e96('0x2d')][_0x0e96('0x2e')]);_0x7a704e[_0x0e96('0x33')]=_[_0x0e96('0x32')](_0x7aaef[_0x0e96('0x33')]);_0x7a704e[_0x0e96('0x34')]=_['intersection'](_0x7a704e[_0x0e96('0x30')],_0x7a704e['query']);_0x469b23[_0x0e96('0x36')]=_[_0x0e96('0x35')](_0x7a704e[_0x0e96('0x30')],qs['fields'](_0x7aaef['query'][_0x0e96('0x37')]));_0x469b23['attributes']=_0x469b23[_0x0e96('0x36')]['length']?_0x469b23[_0x0e96('0x36')]:_0x7a704e[_0x0e96('0x30')];if(_0x7aaef['query']['includeAll']){_0x469b23['include']=[{'all':!![]}];}_0x469b23=_[_0x0e96('0x40')]({},_0x469b23,_0x7aaef[_0x0e96('0x41')]);return db['Variable']['find'](_0x469b23)[_0x0e96('0x23')](handleEntityNotFound(_0x224e94,null))[_0x0e96('0x23')](respondWithResult(_0x224e94,null))[_0x0e96('0x43')](handleError(_0x224e94,null));};exports['create']=function(_0xec0ed2,_0x5e8ee9){return db[_0x0e96('0x2d')]['create'](_0xec0ed2[_0x0e96('0x46')],{})[_0x0e96('0x23')](function(_0x5125f2){var _0x5813d7=_0xec0ed2[_0x0e96('0x47')][_0x0e96('0x25')]({'plain':!![]});if(!_0x5813d7)throw new Error(_0x0e96('0x48'));if(_0x5813d7[_0x0e96('0x49')]==='user'){var _0x33813c=_0x5125f2[_0x0e96('0x25')]({'plain':!![]});var _0x3e07f9=_0x0e96('0x26');return db[_0x0e96('0x4a')][_0x0e96('0x4b')]({'where':{'name':_0x3e07f9,'userProfileId':_0x5813d7['userProfileId']},'raw':!![]})[_0x0e96('0x23')](function(_0x503a27){if(_0x503a27&&_0x503a27[_0x0e96('0x4c')]===0x0){return db[_0x0e96('0x27')][_0x0e96('0x4d')]({'name':_0x33813c[_0x0e96('0x2a')],'resourceId':_0x33813c['id'],'type':_0x503a27[_0x0e96('0x2a')],'sectionId':_0x503a27['id']},{})[_0x0e96('0x23')](function(){return _0x5125f2;});}else{return _0x5125f2;}})[_0x0e96('0x43')](function(_0x442b9f){logger[_0x0e96('0x28')](_0x0e96('0x4e'),_0x442b9f);throw _0x442b9f;});}return _0x5125f2;})[_0x0e96('0x23')](respondWithResult(_0x5e8ee9,0xc9))[_0x0e96('0x43')](handleError(_0x5e8ee9,null));};exports[_0x0e96('0x22')]=function(_0x23d912,_0x52c70a){if(_0x23d912[_0x0e96('0x46')]['id']){delete _0x23d912[_0x0e96('0x46')]['id'];}return db[_0x0e96('0x2d')][_0x0e96('0x4b')]({'where':{'id':_0x23d912['params']['id']}})['then'](handleEntityNotFound(_0x52c70a,null))['then'](saveUpdates(_0x23d912[_0x0e96('0x46')],null))[_0x0e96('0x23')](respondWithResult(_0x52c70a,null))[_0x0e96('0x43')](handleError(_0x52c70a,null));};exports[_0x0e96('0x24')]=function(_0x312681,_0x328bcd){return db['Variable'][_0x0e96('0x4b')]({'where':{'id':_0x312681[_0x0e96('0x45')]['id']}})[_0x0e96('0x23')](handleEntityNotFound(_0x328bcd,null))['then'](removeEntity(_0x328bcd,null))[_0x0e96('0x43')](handleError(_0x328bcd,null));};