66b471aac310dc58db801f5a322d33c32bc94779
[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 _0x8958=['lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','then','get','Variables','UserProfileResource','error','stack','name','send','index','map','Variable','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','include','findAll','rows','show','params','includeAll','find','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','to-csv','ejs'];(function(_0x1c33d2,_0x278c84){var _0x235ad2=function(_0x4e3418){while(--_0x4e3418){_0x1c33d2['push'](_0x1c33d2['shift']());}};_0x235ad2(++_0x278c84);}(_0x8958,0x148));var _0x8895=function(_0x1c5ae6,_0x30f2bd){_0x1c5ae6=_0x1c5ae6-0x0;var _0x4623f3=_0x8958[_0x1c5ae6];return _0x4623f3;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x8895('0x0'));var rimraf=require(_0x8895('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8895('0x2'));var rp=require('request-promise');var moment=require(_0x8895('0x3'));var BPromise=require(_0x8895('0x4'));var Mustache=require(_0x8895('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x8895('0x6'));var ejs=require(_0x8895('0x7'));var fs=require('fs');var _=require(_0x8895('0x8'));var squel=require('squel');var crypto=require(_0x8895('0x9'));var jsforce=require(_0x8895('0xa'));var deskjs=require(_0x8895('0xb'));var toCsv=require(_0x8895('0x6'));var querystring=require(_0x8895('0xc'));var Papa=require(_0x8895('0xd'));var Redis=require(_0x8895('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x8895('0xf'));var as=require(_0x8895('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8895('0x11'))(_0x8895('0x12'));var utils=require(_0x8895('0x13'));var config=require(_0x8895('0x14'));var licenseUtil=require(_0x8895('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x36466b,_0xd9bcee){_0xd9bcee=_0xd9bcee||0xcc;return function(_0x248235){if(_0x248235){return _0x36466b[_0x8895('0x16')](_0xd9bcee);}return _0x36466b[_0x8895('0x17')](_0xd9bcee)[_0x8895('0x18')]();};}function respondWithResult(_0x115ef4,_0x2c02ad){_0x2c02ad=_0x2c02ad||0xc8;return function(_0x1246ba){if(_0x1246ba){return _0x115ef4[_0x8895('0x17')](_0x2c02ad)[_0x8895('0x19')](_0x1246ba);}};}function respondWithFilteredResult(_0x58ccf9,_0x4ff357){return function(_0x5a7758){if(_0x5a7758){var _0x1b3b6b=_0x5a7758[_0x8895('0x1a')],_0x4db2d2=_0x4ff357['offset'],_0xddd55d=_0x4ff357[_0x8895('0x1b')]+_0x4ff357[_0x8895('0x1c')],_0x34ffe2;if(_0xddd55d>=_0x1b3b6b){_0xddd55d=_0x1b3b6b;_0x34ffe2=0xc8;}else{_0x34ffe2=0xce;}_0x58ccf9[_0x8895('0x17')](_0x34ffe2);return _0x58ccf9[_0x8895('0x1d')](_0x8895('0x1e'),_0x4db2d2+'-'+_0xddd55d+'/'+_0x1b3b6b)[_0x8895('0x19')](_0x5a7758);}return null;};}function patchUpdates(_0x19bb84){return function(_0x2fd817){try{jsonpatch['apply'](_0x2fd817,_0x19bb84,!![]);}catch(_0x51e05c){return BPromise[_0x8895('0x1f')](_0x51e05c);}return _0x2fd817[_0x8895('0x20')]();};}function saveUpdates(_0x334a26,_0x4ffa93){return function(_0x47edea){if(_0x47edea){return _0x47edea[_0x8895('0x21')](_0x334a26)[_0x8895('0x22')](function(_0x51608f){return _0x51608f;});}return null;};}function removeEntity(_0x18bb9f,_0x22e05a){return function(_0x44ef1b){if(_0x44ef1b){return _0x44ef1b['destroy']()[_0x8895('0x22')](function(){var _0x5efe81=_0x44ef1b[_0x8895('0x23')]({'plain':!![]});var _0x5de875=_0x8895('0x24');return db[_0x8895('0x25')]['destroy']({'where':{'type':_0x5de875,'resourceId':_0x5efe81['id']}})[_0x8895('0x22')](function(){return _0x44ef1b;});})[_0x8895('0x22')](function(){_0x18bb9f[_0x8895('0x17')](0xcc)[_0x8895('0x18')]();});}};}function handleEntityNotFound(_0xc999af,_0x5c29b3){return function(_0x45461a){if(!_0x45461a){_0xc999af[_0x8895('0x16')](0x194);}return _0x45461a;};}function handleError(_0x4e048e,_0x483a25){_0x483a25=_0x483a25||0x1f4;return function(_0x242ecf){logger[_0x8895('0x26')](_0x242ecf[_0x8895('0x27')]);if(_0x242ecf[_0x8895('0x28')]){delete _0x242ecf[_0x8895('0x28')];}_0x4e048e[_0x8895('0x17')](_0x483a25)[_0x8895('0x29')](_0x242ecf);};}exports[_0x8895('0x2a')]=function(_0x58658a,_0x12d62d){var _0x4286de={},_0x141e19={},_0x2927a6={'count':0x0,'rows':[]};var _0x3c5881=_[_0x8895('0x2b')](db[_0x8895('0x2c')][_0x8895('0x2d')],function(_0x4564b8){return{'name':_0x4564b8[_0x8895('0x2e')],'type':_0x4564b8[_0x8895('0x2f')][_0x8895('0x30')]};});_0x141e19[_0x8895('0x31')]=_[_0x8895('0x2b')](_0x3c5881,_0x8895('0x28'));_0x141e19[_0x8895('0x32')]=_[_0x8895('0x33')](_0x58658a['query']);_0x141e19['filters']=_[_0x8895('0x34')](_0x141e19[_0x8895('0x31')],_0x141e19[_0x8895('0x32')]);_0x4286de[_0x8895('0x35')]=_[_0x8895('0x34')](_0x141e19[_0x8895('0x31')],qs[_0x8895('0x36')](_0x58658a[_0x8895('0x32')][_0x8895('0x36')]));_0x4286de[_0x8895('0x35')]=_0x4286de[_0x8895('0x35')][_0x8895('0x37')]?_0x4286de['attributes']:_0x141e19[_0x8895('0x31')];if(!_0x58658a[_0x8895('0x32')][_0x8895('0x38')](_0x8895('0x39'))){_0x4286de['limit']=qs[_0x8895('0x1c')](_0x58658a['query'][_0x8895('0x1c')]);_0x4286de[_0x8895('0x1b')]=qs[_0x8895('0x1b')](_0x58658a[_0x8895('0x32')]['offset']);}_0x4286de[_0x8895('0x3a')]=qs['sort'](_0x58658a[_0x8895('0x32')][_0x8895('0x3b')]);_0x4286de[_0x8895('0x3c')]=qs[_0x8895('0x3d')](_[_0x8895('0x3e')](_0x58658a[_0x8895('0x32')],_0x141e19[_0x8895('0x3d')]),_0x3c5881);if(_0x58658a[_0x8895('0x32')][_0x8895('0x3f')]){_0x4286de[_0x8895('0x3c')]=_[_0x8895('0x40')](_0x4286de[_0x8895('0x3c')],{'$or':_[_0x8895('0x2b')](_0x3c5881,function(_0x202df0){if(_0x202df0[_0x8895('0x2f')]!==_0x8895('0x41')){var _0x38cdeb={};_0x38cdeb[_0x202df0['name']]={'$like':'%'+_0x58658a[_0x8895('0x32')]['filter']+'%'};return _0x38cdeb;}})});}_0x4286de=_[_0x8895('0x40')]({},_0x4286de,_0x58658a[_0x8895('0x42')]);var _0xa04dee={'where':_0x4286de[_0x8895('0x3c')]};return db[_0x8895('0x2c')][_0x8895('0x1a')](_0xa04dee)[_0x8895('0x22')](function(_0x2a4f1b){_0x2927a6['count']=_0x2a4f1b;if(_0x58658a[_0x8895('0x32')]['includeAll']){_0x4286de[_0x8895('0x43')]=[{'all':!![]}];}return db[_0x8895('0x2c')][_0x8895('0x44')](_0x4286de);})[_0x8895('0x22')](function(_0x498d8e){_0x2927a6[_0x8895('0x45')]=_0x498d8e;return _0x2927a6;})[_0x8895('0x22')](respondWithFilteredResult(_0x12d62d,_0x4286de))['catch'](handleError(_0x12d62d,null));};exports[_0x8895('0x46')]=function(_0x4134c1,_0x311eab){var _0x3719c5={'raw':!![],'where':{'id':_0x4134c1[_0x8895('0x47')]['id']}},_0x14ed55={};_0x14ed55[_0x8895('0x31')]=_['keys'](db['Variable'][_0x8895('0x2d')]);_0x14ed55['query']=_[_0x8895('0x33')](_0x4134c1[_0x8895('0x32')]);_0x14ed55['filters']=_[_0x8895('0x34')](_0x14ed55[_0x8895('0x31')],_0x14ed55[_0x8895('0x32')]);_0x3719c5[_0x8895('0x35')]=_[_0x8895('0x34')](_0x14ed55[_0x8895('0x31')],qs[_0x8895('0x36')](_0x4134c1[_0x8895('0x32')][_0x8895('0x36')]));_0x3719c5[_0x8895('0x35')]=_0x3719c5[_0x8895('0x35')][_0x8895('0x37')]?_0x3719c5['attributes']:_0x14ed55[_0x8895('0x31')];if(_0x4134c1['query'][_0x8895('0x48')]){_0x3719c5[_0x8895('0x43')]=[{'all':!![]}];}_0x3719c5=_[_0x8895('0x40')]({},_0x3719c5,_0x4134c1[_0x8895('0x42')]);return db[_0x8895('0x2c')][_0x8895('0x49')](_0x3719c5)['then'](handleEntityNotFound(_0x311eab,null))[_0x8895('0x22')](respondWithResult(_0x311eab,null))[_0x8895('0x4a')](handleError(_0x311eab,null));};exports[_0x8895('0x4b')]=function(_0x598f11,_0xf94ddc){return db[_0x8895('0x2c')]['create'](_0x598f11[_0x8895('0x4c')],{})[_0x8895('0x22')](function(_0x17edeb){var _0x264fb9=_0x598f11['user'][_0x8895('0x23')]({'plain':!![]});if(!_0x264fb9)throw new Error(_0x8895('0x4d'));if(_0x264fb9[_0x8895('0x4e')]==='user'){var _0x1f9159=_0x17edeb['get']({'plain':!![]});var _0x175a9f=_0x8895('0x24');return db[_0x8895('0x4f')][_0x8895('0x49')]({'where':{'name':_0x175a9f,'userProfileId':_0x264fb9[_0x8895('0x50')]},'raw':!![]})[_0x8895('0x22')](function(_0x47ac68){if(_0x47ac68&&_0x47ac68[_0x8895('0x51')]===0x0){return db[_0x8895('0x25')]['create']({'name':_0x1f9159[_0x8895('0x28')],'resourceId':_0x1f9159['id'],'type':_0x47ac68[_0x8895('0x28')],'sectionId':_0x47ac68['id']},{})['then'](function(){return _0x17edeb;});}else{return _0x17edeb;}})['catch'](function(_0x55d9e1){logger['error'](_0x8895('0x52'),_0x55d9e1);throw _0x55d9e1;});}return _0x17edeb;})['then'](respondWithResult(_0xf94ddc,0xc9))[_0x8895('0x4a')](handleError(_0xf94ddc,null));};exports[_0x8895('0x21')]=function(_0x3632b1,_0x1ecd55){if(_0x3632b1[_0x8895('0x4c')]['id']){delete _0x3632b1[_0x8895('0x4c')]['id'];}return db[_0x8895('0x2c')][_0x8895('0x49')]({'where':{'id':_0x3632b1['params']['id']}})[_0x8895('0x22')](handleEntityNotFound(_0x1ecd55,null))[_0x8895('0x22')](saveUpdates(_0x3632b1[_0x8895('0x4c')],null))[_0x8895('0x22')](respondWithResult(_0x1ecd55,null))[_0x8895('0x4a')](handleError(_0x1ecd55,null));};exports[_0x8895('0x53')]=function(_0x10dad9,_0x443641){return db[_0x8895('0x2c')][_0x8895('0x49')]({'where':{'id':_0x10dad9[_0x8895('0x47')]['id']}})[_0x8895('0x22')](handleEntityNotFound(_0x443641,null))[_0x8895('0x22')](removeEntity(_0x443641,null))[_0x8895('0x4a')](handleError(_0x443641,null));};