7f8b2c4499eade3145e8895eadef3cdab8cff1b9
[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 _0x56d5=['../../config/logger','../../config/environment','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','get','Variables','UserProfileResource','error','stack','name','index','map','Variable','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','options','includeAll','findAll','catch','show','params','keys','include','merge','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x31bab3,_0x44554f){var _0x4fd382=function(_0x42b336){while(--_0x42b336){_0x31bab3['push'](_0x31bab3['shift']());}};_0x4fd382(++_0x44554f);}(_0x56d5,0x1e2));var _0x556d=function(_0x3d4b91,_0x19cc7f){_0x3d4b91=_0x3d4b91-0x0;var _0x11e1a5=_0x56d5[_0x3d4b91];return _0x11e1a5;};'use strict';var emlformat=require(_0x556d('0x0'));var rimraf=require(_0x556d('0x1'));var zipdir=require(_0x556d('0x2'));var jsonpatch=require(_0x556d('0x3'));var rp=require('request-promise');var moment=require(_0x556d('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x556d('0x5'));var util=require(_0x556d('0x6'));var path=require('path');var sox=require(_0x556d('0x7'));var csv=require('to-csv');var ejs=require(_0x556d('0x8'));var fs=require('fs');var fs_extra=require(_0x556d('0x9'));var _=require(_0x556d('0xa'));var squel=require(_0x556d('0xb'));var crypto=require(_0x556d('0xc'));var jsforce=require(_0x556d('0xd'));var deskjs=require(_0x556d('0xe'));var toCsv=require(_0x556d('0xf'));var querystring=require(_0x556d('0x10'));var Papa=require(_0x556d('0x11'));var Redis=require('ioredis');var authService=require(_0x556d('0x12'));var qs=require(_0x556d('0x13'));var as=require(_0x556d('0x14'));var hardwareService=require(_0x556d('0x15'));var logger=require(_0x556d('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x556d('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2e40f9,_0x3fab31){_0x3fab31=_0x3fab31||0xcc;return function(_0x4027c9){if(_0x4027c9){return _0x2e40f9[_0x556d('0x18')](_0x3fab31);}return _0x2e40f9[_0x556d('0x19')](_0x3fab31)[_0x556d('0x1a')]();};}function respondWithResult(_0x5dde4d,_0x3a2de7){_0x3a2de7=_0x3a2de7||0xc8;return function(_0x584541){if(_0x584541){return _0x5dde4d['status'](_0x3a2de7)[_0x556d('0x1b')](_0x584541);}};}function respondWithFilteredResult(_0x36035c,_0x34307a){return function(_0x36a70a){if(_0x36a70a){var _0x5e8344=typeof _0x34307a[_0x556d('0x1c')]==='undefined'&&typeof _0x34307a['limit']===_0x556d('0x1d');var _0x31ef5d=_0x36a70a[_0x556d('0x1e')];var _0x175744=_0x5e8344?0x0:_0x34307a[_0x556d('0x1c')];var _0xd60aaa=_0x5e8344?_0x36a70a[_0x556d('0x1e')]:_0x34307a[_0x556d('0x1c')]+_0x34307a[_0x556d('0x1f')];var _0x578514;if(_0xd60aaa>=_0x31ef5d){_0xd60aaa=_0x31ef5d;_0x578514=0xc8;}else{_0x578514=0xce;}_0x36035c[_0x556d('0x19')](_0x578514);return _0x36035c[_0x556d('0x20')](_0x556d('0x21'),_0x175744+'-'+_0xd60aaa+'/'+_0x31ef5d)[_0x556d('0x1b')](_0x36a70a);}return null;};}function patchUpdates(_0x53e430){return function(_0x384712){try{jsonpatch['apply'](_0x384712,_0x53e430,!![]);}catch(_0x401598){return BPromise[_0x556d('0x22')](_0x401598);}return _0x384712[_0x556d('0x23')]();};}function saveUpdates(_0x580a81,_0x324235){return function(_0x2ee767){if(_0x2ee767){return _0x2ee767[_0x556d('0x24')](_0x580a81)[_0x556d('0x25')](function(_0x54adc6){return _0x54adc6;});}return null;};}function removeEntity(_0x9a8c31,_0x4c174a){return function(_0x4fedd6){if(_0x4fedd6){return _0x4fedd6[_0x556d('0x26')]()[_0x556d('0x25')](function(){var _0x2ce80a=_0x4fedd6[_0x556d('0x27')]({'plain':!![]});var _0x5d72ce=_0x556d('0x28');return db[_0x556d('0x29')][_0x556d('0x26')]({'where':{'type':_0x5d72ce,'resourceId':_0x2ce80a['id']}})['then'](function(){return _0x4fedd6;});})[_0x556d('0x25')](function(){_0x9a8c31[_0x556d('0x19')](0xcc)[_0x556d('0x1a')]();});}};}function handleEntityNotFound(_0x2c428e,_0x20ba27){return function(_0x5ba167){if(!_0x5ba167){_0x2c428e['sendStatus'](0x194);}return _0x5ba167;};}function handleError(_0x40b8fc,_0xff731f){_0xff731f=_0xff731f||0x1f4;return function(_0x24de20){logger[_0x556d('0x2a')](_0x24de20[_0x556d('0x2b')]);if(_0x24de20[_0x556d('0x2c')]){delete _0x24de20[_0x556d('0x2c')];}_0x40b8fc[_0x556d('0x19')](_0xff731f)['send'](_0x24de20);};}exports[_0x556d('0x2d')]=function(_0xf0b4df,_0x2cedeb){var _0x40f454={},_0x5bff05={},_0xb95045={'count':0x0,'rows':[]};var _0x38eec8=_[_0x556d('0x2e')](db[_0x556d('0x2f')][_0x556d('0x30')],function(_0x46d875){return{'name':_0x46d875[_0x556d('0x31')],'type':_0x46d875[_0x556d('0x32')][_0x556d('0x33')]};});_0x5bff05[_0x556d('0x34')]=_[_0x556d('0x2e')](_0x38eec8,_0x556d('0x2c'));_0x5bff05[_0x556d('0x35')]=_['keys'](_0xf0b4df[_0x556d('0x35')]);_0x5bff05['filters']=_[_0x556d('0x36')](_0x5bff05['model'],_0x5bff05[_0x556d('0x35')]);_0x40f454[_0x556d('0x37')]=_['intersection'](_0x5bff05['model'],qs[_0x556d('0x38')](_0xf0b4df['query']['fields']));_0x40f454[_0x556d('0x37')]=_0x40f454[_0x556d('0x37')][_0x556d('0x39')]?_0x40f454['attributes']:_0x5bff05[_0x556d('0x34')];if(!_0xf0b4df[_0x556d('0x35')][_0x556d('0x3a')](_0x556d('0x3b'))){_0x40f454[_0x556d('0x1f')]=qs['limit'](_0xf0b4df[_0x556d('0x35')][_0x556d('0x1f')]);_0x40f454['offset']=qs[_0x556d('0x1c')](_0xf0b4df[_0x556d('0x35')]['offset']);}_0x40f454[_0x556d('0x3c')]=qs[_0x556d('0x3d')](_0xf0b4df[_0x556d('0x35')][_0x556d('0x3d')]);_0x40f454[_0x556d('0x3e')]=qs[_0x556d('0x3f')](_[_0x556d('0x40')](_0xf0b4df[_0x556d('0x35')],_0x5bff05[_0x556d('0x3f')]),_0x38eec8);if(_0xf0b4df[_0x556d('0x35')][_0x556d('0x41')]){_0x40f454['where']=_['merge'](_0x40f454['where'],{'$or':_[_0x556d('0x2e')](_0x38eec8,function(_0x4c1127){if(_0x4c1127[_0x556d('0x32')]!==_0x556d('0x42')){var _0x5c5be7={};_0x5c5be7[_0x4c1127[_0x556d('0x2c')]]={'$like':'%'+_0xf0b4df[_0x556d('0x35')][_0x556d('0x41')]+'%'};return _0x5c5be7;}})});}_0x40f454=_['merge']({},_0x40f454,_0xf0b4df[_0x556d('0x43')]);var _0x2fbb58={'where':_0x40f454[_0x556d('0x3e')]};return db[_0x556d('0x2f')][_0x556d('0x1e')](_0x2fbb58)[_0x556d('0x25')](function(_0x7aaf2b){_0xb95045['count']=_0x7aaf2b;if(_0xf0b4df[_0x556d('0x35')][_0x556d('0x44')]){_0x40f454['include']=[{'all':!![]}];}return db[_0x556d('0x2f')][_0x556d('0x45')](_0x40f454);})['then'](function(_0x13335e){_0xb95045['rows']=_0x13335e;return _0xb95045;})['then'](respondWithFilteredResult(_0x2cedeb,_0x40f454))[_0x556d('0x46')](handleError(_0x2cedeb,null));};exports[_0x556d('0x47')]=function(_0x2ec7cc,_0xd421d7){var _0x513b54={'raw':!![],'where':{'id':_0x2ec7cc[_0x556d('0x48')]['id']}},_0x324857={};_0x324857[_0x556d('0x34')]=_[_0x556d('0x49')](db['Variable'][_0x556d('0x30')]);_0x324857[_0x556d('0x35')]=_[_0x556d('0x49')](_0x2ec7cc['query']);_0x324857[_0x556d('0x3f')]=_['intersection'](_0x324857[_0x556d('0x34')],_0x324857[_0x556d('0x35')]);_0x513b54['attributes']=_[_0x556d('0x36')](_0x324857[_0x556d('0x34')],qs[_0x556d('0x38')](_0x2ec7cc[_0x556d('0x35')]['fields']));_0x513b54[_0x556d('0x37')]=_0x513b54['attributes'][_0x556d('0x39')]?_0x513b54[_0x556d('0x37')]:_0x324857['model'];if(_0x2ec7cc[_0x556d('0x35')][_0x556d('0x44')]){_0x513b54[_0x556d('0x4a')]=[{'all':!![]}];}_0x513b54=_[_0x556d('0x4b')]({},_0x513b54,_0x2ec7cc[_0x556d('0x43')]);return db['Variable'][_0x556d('0x4c')](_0x513b54)['then'](handleEntityNotFound(_0xd421d7,null))[_0x556d('0x25')](respondWithResult(_0xd421d7,null))[_0x556d('0x46')](handleError(_0xd421d7,null));};exports[_0x556d('0x4d')]=function(_0x239848,_0x50f98b){return db[_0x556d('0x2f')][_0x556d('0x4d')](_0x239848[_0x556d('0x4e')],{})[_0x556d('0x25')](function(_0x509ecb){var _0x4f46dd=_0x239848['user'][_0x556d('0x27')]({'plain':!![]});if(!_0x4f46dd)throw new Error(_0x556d('0x4f'));if(_0x4f46dd[_0x556d('0x50')]===_0x556d('0x51')){var _0x16325c=_0x509ecb['get']({'plain':!![]});var _0x4f4edb='Variables';return db[_0x556d('0x52')][_0x556d('0x4c')]({'where':{'name':_0x4f4edb,'userProfileId':_0x4f46dd['userProfileId']},'raw':!![]})[_0x556d('0x25')](function(_0x4e8aa0){if(_0x4e8aa0&&_0x4e8aa0['autoAssociation']===0x0){return db[_0x556d('0x29')][_0x556d('0x4d')]({'name':_0x16325c['name'],'resourceId':_0x16325c['id'],'type':_0x4e8aa0[_0x556d('0x2c')],'sectionId':_0x4e8aa0['id']},{})[_0x556d('0x25')](function(){return _0x509ecb;});}else{return _0x509ecb;}})['catch'](function(_0x3d9fad){logger[_0x556d('0x2a')](_0x556d('0x53'),_0x3d9fad);throw _0x3d9fad;});}return _0x509ecb;})[_0x556d('0x25')](respondWithResult(_0x50f98b,0xc9))[_0x556d('0x46')](handleError(_0x50f98b,null));};exports[_0x556d('0x24')]=function(_0x168ccb,_0x3c98c7){if(_0x168ccb[_0x556d('0x4e')]['id']){delete _0x168ccb[_0x556d('0x4e')]['id'];}return db['Variable'][_0x556d('0x4c')]({'where':{'id':_0x168ccb[_0x556d('0x48')]['id']}})['then'](handleEntityNotFound(_0x3c98c7,null))[_0x556d('0x25')](saveUpdates(_0x168ccb[_0x556d('0x4e')],null))[_0x556d('0x25')](respondWithResult(_0x3c98c7,null))[_0x556d('0x46')](handleError(_0x3c98c7,null));};exports[_0x556d('0x26')]=function(_0x1d343f,_0x4ec3e4){return db[_0x556d('0x2f')]['find']({'where':{'id':_0x1d343f[_0x556d('0x48')]['id']}})['then'](handleEntityNotFound(_0x4ec3e4,null))['then'](removeEntity(_0x4ec3e4,null))[_0x556d('0x46')](handleError(_0x4ec3e4,null));};