231a59253eaf773a5c36e80f9f60b922fdaaa7aa
[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 _0xe974=['../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','Variables','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','filters','intersection','query','attributes','model','fields','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','Variable','findAll','rows','catch','show','params','keys','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment'];(function(_0x5973fd,_0x1abc78){var _0x82f308=function(_0x2531d4){while(--_0x2531d4){_0x5973fd['push'](_0x5973fd['shift']());}};_0x82f308(++_0x1abc78);}(_0xe974,0xed));var _0x4e97=function(_0x1a0c59,_0x3b4dcc){_0x1a0c59=_0x1a0c59-0x0;var _0xed67c9=_0xe974[_0x1a0c59];return _0xed67c9;};'use strict';var emlformat=require(_0x4e97('0x0'));var rimraf=require(_0x4e97('0x1'));var zipdir=require(_0x4e97('0x2'));var jsonpatch=require(_0x4e97('0x3'));var rp=require(_0x4e97('0x4'));var moment=require(_0x4e97('0x5'));var BPromise=require(_0x4e97('0x6'));var Mustache=require(_0x4e97('0x7'));var util=require(_0x4e97('0x8'));var path=require(_0x4e97('0x9'));var sox=require(_0x4e97('0xa'));var csv=require(_0x4e97('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4e97('0xc'));var squel=require(_0x4e97('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x4e97('0xe'));var toCsv=require(_0x4e97('0xb'));var querystring=require('querystring');var Papa=require(_0x4e97('0xf'));var Redis=require(_0x4e97('0x10'));var authService=require(_0x4e97('0x11'));var qs=require(_0x4e97('0x12'));var as=require(_0x4e97('0x13'));var hardwareService=require(_0x4e97('0x14'));var logger=require('../../config/logger')(_0x4e97('0x15'));var utils=require(_0x4e97('0x16'));var config=require(_0x4e97('0x17'));var licenseUtil=require(_0x4e97('0x18'));var db=require(_0x4e97('0x19'))['db'];function respondWithStatusCode(_0x59d129,_0x51f62c){_0x51f62c=_0x51f62c||0xcc;return function(_0x29e6e7){if(_0x29e6e7){return _0x59d129['sendStatus'](_0x51f62c);}return _0x59d129['status'](_0x51f62c)[_0x4e97('0x1a')]();};}function respondWithResult(_0x1f14af,_0x5e5d1e){_0x5e5d1e=_0x5e5d1e||0xc8;return function(_0x11685b){if(_0x11685b){return _0x1f14af[_0x4e97('0x1b')](_0x5e5d1e)[_0x4e97('0x1c')](_0x11685b);}};}function respondWithFilteredResult(_0x24f466,_0x7c5334){return function(_0x5d093a){if(_0x5d093a){var _0xad5f7=typeof _0x7c5334[_0x4e97('0x1d')]===_0x4e97('0x1e')&&typeof _0x7c5334[_0x4e97('0x1f')]===_0x4e97('0x1e');var _0x1b783d=_0x5d093a[_0x4e97('0x20')];var _0x1e26a6=_0xad5f7?0x0:_0x7c5334[_0x4e97('0x1d')];var _0x2d55ba=_0xad5f7?_0x5d093a['count']:_0x7c5334[_0x4e97('0x1d')]+_0x7c5334[_0x4e97('0x1f')];var _0x4ee684;if(_0x2d55ba>=_0x1b783d){_0x2d55ba=_0x1b783d;_0x4ee684=0xc8;}else{_0x4ee684=0xce;}_0x24f466['status'](_0x4ee684);return _0x24f466[_0x4e97('0x21')](_0x4e97('0x22'),_0x1e26a6+'-'+_0x2d55ba+'/'+_0x1b783d)[_0x4e97('0x1c')](_0x5d093a);}return null;};}function patchUpdates(_0x397a35){return function(_0x1fe24b){try{jsonpatch[_0x4e97('0x23')](_0x1fe24b,_0x397a35,!![]);}catch(_0x46e71c){return BPromise[_0x4e97('0x24')](_0x46e71c);}return _0x1fe24b['save']();};}function saveUpdates(_0x10263b,_0x3410b1){return function(_0x1cd820){if(_0x1cd820){return _0x1cd820[_0x4e97('0x25')](_0x10263b)[_0x4e97('0x26')](function(_0x391e74){return _0x391e74;});}return null;};}function removeEntity(_0x383b5d,_0x4b31bb){return function(_0x19052e){if(_0x19052e){return _0x19052e[_0x4e97('0x27')]()[_0x4e97('0x26')](function(){var _0x21a85f=_0x19052e['get']({'plain':!![]});var _0x4a60c4=_0x4e97('0x28');return db['UserProfileResource'][_0x4e97('0x27')]({'where':{'type':_0x4a60c4,'resourceId':_0x21a85f['id']}})[_0x4e97('0x26')](function(){return _0x19052e;});})[_0x4e97('0x26')](function(){_0x383b5d[_0x4e97('0x1b')](0xcc)[_0x4e97('0x1a')]();});}};}function handleEntityNotFound(_0x401ec7,_0x5dd768){return function(_0x164896){if(!_0x164896){_0x401ec7[_0x4e97('0x29')](0x194);}return _0x164896;};}function handleError(_0x18a8ae,_0xec1116){_0xec1116=_0xec1116||0x1f4;return function(_0x2a6af2){logger[_0x4e97('0x2a')](_0x2a6af2[_0x4e97('0x2b')]);if(_0x2a6af2[_0x4e97('0x2c')]){delete _0x2a6af2[_0x4e97('0x2c')];}_0x18a8ae[_0x4e97('0x1b')](_0xec1116)[_0x4e97('0x2d')](_0x2a6af2);};}exports[_0x4e97('0x2e')]=function(_0x3776a8,_0x456e2b){var _0x3b7788={},_0xa4338c={},_0x30182d={'count':0x0,'rows':[]};var _0x4929f9=_[_0x4e97('0x2f')](db['Variable'][_0x4e97('0x30')],function(_0x5b471a){return{'name':_0x5b471a[_0x4e97('0x31')],'type':_0x5b471a[_0x4e97('0x32')][_0x4e97('0x33')]};});_0xa4338c['model']=_[_0x4e97('0x2f')](_0x4929f9,_0x4e97('0x2c'));_0xa4338c['query']=_['keys'](_0x3776a8['query']);_0xa4338c[_0x4e97('0x34')]=_[_0x4e97('0x35')](_0xa4338c['model'],_0xa4338c[_0x4e97('0x36')]);_0x3b7788[_0x4e97('0x37')]=_['intersection'](_0xa4338c[_0x4e97('0x38')],qs[_0x4e97('0x39')](_0x3776a8[_0x4e97('0x36')][_0x4e97('0x39')]));_0x3b7788[_0x4e97('0x37')]=_0x3b7788[_0x4e97('0x37')][_0x4e97('0x3a')]?_0x3b7788[_0x4e97('0x37')]:_0xa4338c[_0x4e97('0x38')];if(!_0x3776a8[_0x4e97('0x36')][_0x4e97('0x3b')]('nolimit')){_0x3b7788[_0x4e97('0x1f')]=qs[_0x4e97('0x1f')](_0x3776a8[_0x4e97('0x36')][_0x4e97('0x1f')]);_0x3b7788[_0x4e97('0x1d')]=qs['offset'](_0x3776a8[_0x4e97('0x36')][_0x4e97('0x1d')]);}_0x3b7788['order']=qs[_0x4e97('0x3c')](_0x3776a8[_0x4e97('0x36')][_0x4e97('0x3c')]);_0x3b7788[_0x4e97('0x3d')]=qs[_0x4e97('0x34')](_[_0x4e97('0x3e')](_0x3776a8['query'],_0xa4338c[_0x4e97('0x34')]),_0x4929f9);if(_0x3776a8['query'][_0x4e97('0x3f')]){_0x3b7788[_0x4e97('0x3d')]=_[_0x4e97('0x40')](_0x3b7788[_0x4e97('0x3d')],{'$or':_[_0x4e97('0x2f')](_0x4929f9,function(_0x99f4d8){if(_0x99f4d8[_0x4e97('0x32')]!==_0x4e97('0x41')){var _0x52c680={};_0x52c680[_0x99f4d8[_0x4e97('0x2c')]]={'$like':'%'+_0x3776a8[_0x4e97('0x36')][_0x4e97('0x3f')]+'%'};return _0x52c680;}})});}_0x3b7788=_[_0x4e97('0x40')]({},_0x3b7788,_0x3776a8[_0x4e97('0x42')]);var _0x40dc42={'where':_0x3b7788[_0x4e97('0x3d')]};return db['Variable']['count'](_0x40dc42)[_0x4e97('0x26')](function(_0x596f30){_0x30182d['count']=_0x596f30;if(_0x3776a8['query'][_0x4e97('0x43')]){_0x3b7788[_0x4e97('0x44')]=[{'all':!![]}];}return db[_0x4e97('0x45')][_0x4e97('0x46')](_0x3b7788);})[_0x4e97('0x26')](function(_0x2e18a4){_0x30182d[_0x4e97('0x47')]=_0x2e18a4;return _0x30182d;})['then'](respondWithFilteredResult(_0x456e2b,_0x3b7788))[_0x4e97('0x48')](handleError(_0x456e2b,null));};exports[_0x4e97('0x49')]=function(_0x3e6b65,_0x29d616){var _0x4d6a75={'raw':!![],'where':{'id':_0x3e6b65[_0x4e97('0x4a')]['id']}},_0x4b1ebb={};_0x4b1ebb[_0x4e97('0x38')]=_[_0x4e97('0x4b')](db[_0x4e97('0x45')]['rawAttributes']);_0x4b1ebb[_0x4e97('0x36')]=_[_0x4e97('0x4b')](_0x3e6b65[_0x4e97('0x36')]);_0x4b1ebb[_0x4e97('0x34')]=_[_0x4e97('0x35')](_0x4b1ebb[_0x4e97('0x38')],_0x4b1ebb[_0x4e97('0x36')]);_0x4d6a75[_0x4e97('0x37')]=_[_0x4e97('0x35')](_0x4b1ebb['model'],qs['fields'](_0x3e6b65[_0x4e97('0x36')][_0x4e97('0x39')]));_0x4d6a75[_0x4e97('0x37')]=_0x4d6a75['attributes'][_0x4e97('0x3a')]?_0x4d6a75[_0x4e97('0x37')]:_0x4b1ebb['model'];if(_0x3e6b65[_0x4e97('0x36')][_0x4e97('0x43')]){_0x4d6a75['include']=[{'all':!![]}];}_0x4d6a75=_[_0x4e97('0x40')]({},_0x4d6a75,_0x3e6b65[_0x4e97('0x42')]);return db[_0x4e97('0x45')]['find'](_0x4d6a75)[_0x4e97('0x26')](handleEntityNotFound(_0x29d616,null))[_0x4e97('0x26')](respondWithResult(_0x29d616,null))[_0x4e97('0x48')](handleError(_0x29d616,null));};exports[_0x4e97('0x4c')]=function(_0x12516a,_0xb29eb0){return db['Variable'][_0x4e97('0x4c')](_0x12516a['body'],{})[_0x4e97('0x26')](function(_0x197851){var _0x58b3b9=_0x12516a[_0x4e97('0x4d')]['get']({'plain':!![]});if(!_0x58b3b9)throw new Error(_0x4e97('0x4e'));if(_0x58b3b9['role']===_0x4e97('0x4d')){var _0x32edcb=_0x197851[_0x4e97('0x4f')]({'plain':!![]});var _0x21aef7=_0x4e97('0x28');return db[_0x4e97('0x50')][_0x4e97('0x51')]({'where':{'name':_0x21aef7,'userProfileId':_0x58b3b9[_0x4e97('0x52')]},'raw':!![]})['then'](function(_0x238874){if(_0x238874&&_0x238874[_0x4e97('0x53')]===0x0){return db[_0x4e97('0x54')][_0x4e97('0x4c')]({'name':_0x32edcb['name'],'resourceId':_0x32edcb['id'],'type':_0x238874['name'],'sectionId':_0x238874['id']},{})['then'](function(){return _0x197851;});}else{return _0x197851;}})['catch'](function(_0x2d07ef){logger[_0x4e97('0x2a')](_0x4e97('0x55'),_0x2d07ef);throw _0x2d07ef;});}return _0x197851;})[_0x4e97('0x26')](respondWithResult(_0xb29eb0,0xc9))['catch'](handleError(_0xb29eb0,null));};exports[_0x4e97('0x25')]=function(_0x3352f2,_0x3d7407){if(_0x3352f2[_0x4e97('0x56')]['id']){delete _0x3352f2[_0x4e97('0x56')]['id'];}return db[_0x4e97('0x45')][_0x4e97('0x51')]({'where':{'id':_0x3352f2[_0x4e97('0x4a')]['id']}})[_0x4e97('0x26')](handleEntityNotFound(_0x3d7407,null))[_0x4e97('0x26')](saveUpdates(_0x3352f2[_0x4e97('0x56')],null))[_0x4e97('0x26')](respondWithResult(_0x3d7407,null))[_0x4e97('0x48')](handleError(_0x3d7407,null));};exports[_0x4e97('0x27')]=function(_0x35a06d,_0xe0fdba){return db[_0x4e97('0x45')][_0x4e97('0x51')]({'where':{'id':_0x35a06d['params']['id']}})[_0x4e97('0x26')](handleEntityNotFound(_0xe0fdba,null))[_0x4e97('0x26')](removeEntity(_0xe0fdba,null))[_0x4e97('0x48')](handleError(_0xe0fdba,null));};