c6a07ef94ea5e742b2247af0dc7446ca39312978
[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 _0xce4e=['fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','params','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','sox','lodash','crypto','jsforce','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','Content-Range','apply','save','update','destroy','then','Variables','UserProfileResource','error','stack','name','index','map','Variable','rawAttributes'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xce4e,0x114));var _0xece4=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xce4e[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0xece4('0x0'));var rimraf=require(_0xece4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xece4('0x2'));var rp=require(_0xece4('0x3'));var moment=require('moment');var BPromise=require(_0xece4('0x4'));var Mustache=require(_0xece4('0x5'));var util=require('util');var path=require(_0xece4('0x6'));var sox=require(_0xece4('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xece4('0x8'));var squel=require('squel');var crypto=require(_0xece4('0x9'));var jsforce=require(_0xece4('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xece4('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xece4('0xc'));var authService=require(_0xece4('0xd'));var qs=require(_0xece4('0xe'));var as=require(_0xece4('0xf'));var hardwareService=require(_0xece4('0x10'));var logger=require(_0xece4('0x11'))('api');var utils=require(_0xece4('0x12'));var config=require(_0xece4('0x13'));var licenseUtil=require(_0xece4('0x14'));var db=require(_0xece4('0x15'))['db'];function respondWithStatusCode(_0x4979fd,_0x447bfb){_0x447bfb=_0x447bfb||0xcc;return function(_0x885f95){if(_0x885f95){return _0x4979fd['sendStatus'](_0x447bfb);}return _0x4979fd[_0xece4('0x16')](_0x447bfb)[_0xece4('0x17')]();};}function respondWithResult(_0x39023c,_0x573b01){_0x573b01=_0x573b01||0xc8;return function(_0x341a9c){if(_0x341a9c){return _0x39023c[_0xece4('0x16')](_0x573b01)[_0xece4('0x18')](_0x341a9c);}};}function respondWithFilteredResult(_0x39482b,_0x5e8ec7){return function(_0x1a8559){if(_0x1a8559){var _0x3e9120=typeof _0x5e8ec7[_0xece4('0x19')]===_0xece4('0x1a')&&typeof _0x5e8ec7['limit']===_0xece4('0x1a');var _0x59ebf3=_0x1a8559[_0xece4('0x1b')];var _0x27e775=_0x3e9120?0x0:_0x5e8ec7['offset'];var _0x130835=_0x3e9120?_0x1a8559[_0xece4('0x1b')]:_0x5e8ec7[_0xece4('0x19')]+_0x5e8ec7[_0xece4('0x1c')];var _0x5e4728;if(_0x130835>=_0x59ebf3){_0x130835=_0x59ebf3;_0x5e4728=0xc8;}else{_0x5e4728=0xce;}_0x39482b[_0xece4('0x16')](_0x5e4728);return _0x39482b['set'](_0xece4('0x1d'),_0x27e775+'-'+_0x130835+'/'+_0x59ebf3)[_0xece4('0x18')](_0x1a8559);}return null;};}function patchUpdates(_0x163490){return function(_0x8d6d68){try{jsonpatch[_0xece4('0x1e')](_0x8d6d68,_0x163490,!![]);}catch(_0x5011f3){return BPromise['reject'](_0x5011f3);}return _0x8d6d68[_0xece4('0x1f')]();};}function saveUpdates(_0x1818a5,_0x79db64){return function(_0x2594a7){if(_0x2594a7){return _0x2594a7[_0xece4('0x20')](_0x1818a5)['then'](function(_0x11acd6){return _0x11acd6;});}return null;};}function removeEntity(_0x18d26d,_0x1ae291){return function(_0x226c11){if(_0x226c11){return _0x226c11[_0xece4('0x21')]()[_0xece4('0x22')](function(){var _0x5dda2f=_0x226c11['get']({'plain':!![]});var _0x1e258b=_0xece4('0x23');return db[_0xece4('0x24')]['destroy']({'where':{'type':_0x1e258b,'resourceId':_0x5dda2f['id']}})[_0xece4('0x22')](function(){return _0x226c11;});})['then'](function(){_0x18d26d[_0xece4('0x16')](0xcc)[_0xece4('0x17')]();});}};}function handleEntityNotFound(_0x168e78,_0xbf6223){return function(_0x380b54){if(!_0x380b54){_0x168e78['sendStatus'](0x194);}return _0x380b54;};}function handleError(_0xb6dee9,_0x493b7b){_0x493b7b=_0x493b7b||0x1f4;return function(_0x458c6d){logger[_0xece4('0x25')](_0x458c6d[_0xece4('0x26')]);if(_0x458c6d[_0xece4('0x27')]){delete _0x458c6d[_0xece4('0x27')];}_0xb6dee9['status'](_0x493b7b)['send'](_0x458c6d);};}exports[_0xece4('0x28')]=function(_0x433e20,_0x2e2112){var _0x336cf6={},_0x3f1d1b={},_0x25b2fe={'count':0x0,'rows':[]};var _0x5b7fc0=_[_0xece4('0x29')](db[_0xece4('0x2a')][_0xece4('0x2b')],function(_0x1c2bd8){return{'name':_0x1c2bd8[_0xece4('0x2c')],'type':_0x1c2bd8[_0xece4('0x2d')][_0xece4('0x2e')]};});_0x3f1d1b[_0xece4('0x2f')]=_['map'](_0x5b7fc0,_0xece4('0x27'));_0x3f1d1b[_0xece4('0x30')]=_[_0xece4('0x31')](_0x433e20[_0xece4('0x30')]);_0x3f1d1b[_0xece4('0x32')]=_[_0xece4('0x33')](_0x3f1d1b['model'],_0x3f1d1b[_0xece4('0x30')]);_0x336cf6[_0xece4('0x34')]=_['intersection'](_0x3f1d1b[_0xece4('0x2f')],qs[_0xece4('0x35')](_0x433e20[_0xece4('0x30')]['fields']));_0x336cf6['attributes']=_0x336cf6[_0xece4('0x34')][_0xece4('0x36')]?_0x336cf6[_0xece4('0x34')]:_0x3f1d1b[_0xece4('0x2f')];if(!_0x433e20[_0xece4('0x30')][_0xece4('0x37')](_0xece4('0x38'))){_0x336cf6[_0xece4('0x1c')]=qs[_0xece4('0x1c')](_0x433e20[_0xece4('0x30')][_0xece4('0x1c')]);_0x336cf6['offset']=qs[_0xece4('0x19')](_0x433e20[_0xece4('0x30')]['offset']);}_0x336cf6[_0xece4('0x39')]=qs['sort'](_0x433e20[_0xece4('0x30')][_0xece4('0x3a')]);_0x336cf6[_0xece4('0x3b')]=qs[_0xece4('0x32')](_[_0xece4('0x3c')](_0x433e20[_0xece4('0x30')],_0x3f1d1b[_0xece4('0x32')]),_0x5b7fc0);if(_0x433e20[_0xece4('0x30')][_0xece4('0x3d')]){_0x336cf6[_0xece4('0x3b')]=_['merge'](_0x336cf6[_0xece4('0x3b')],{'$or':_[_0xece4('0x29')](_0x5b7fc0,function(_0x2411fe){if(_0x2411fe['type']!==_0xece4('0x3e')){var _0x136f53={};_0x136f53[_0x2411fe[_0xece4('0x27')]]={'$like':'%'+_0x433e20[_0xece4('0x30')][_0xece4('0x3d')]+'%'};return _0x136f53;}})});}_0x336cf6=_[_0xece4('0x3f')]({},_0x336cf6,_0x433e20[_0xece4('0x40')]);var _0x17a737={'where':_0x336cf6[_0xece4('0x3b')]};return db['Variable']['count'](_0x17a737)[_0xece4('0x22')](function(_0x297d5f){_0x25b2fe[_0xece4('0x1b')]=_0x297d5f;if(_0x433e20[_0xece4('0x30')][_0xece4('0x41')]){_0x336cf6[_0xece4('0x42')]=[{'all':!![]}];}return db['Variable'][_0xece4('0x43')](_0x336cf6);})['then'](function(_0x1b16a2){_0x25b2fe['rows']=_0x1b16a2;return _0x25b2fe;})[_0xece4('0x22')](respondWithFilteredResult(_0x2e2112,_0x336cf6))[_0xece4('0x44')](handleError(_0x2e2112,null));};exports[_0xece4('0x45')]=function(_0x29fdaf,_0x2d869c){var _0x5f5d8f={'raw':!![],'where':{'id':_0x29fdaf['params']['id']}},_0x3ea13e={};_0x3ea13e['model']=_[_0xece4('0x31')](db[_0xece4('0x2a')][_0xece4('0x2b')]);_0x3ea13e[_0xece4('0x30')]=_[_0xece4('0x31')](_0x29fdaf[_0xece4('0x30')]);_0x3ea13e[_0xece4('0x32')]=_[_0xece4('0x33')](_0x3ea13e['model'],_0x3ea13e[_0xece4('0x30')]);_0x5f5d8f[_0xece4('0x34')]=_[_0xece4('0x33')](_0x3ea13e['model'],qs[_0xece4('0x35')](_0x29fdaf['query']['fields']));_0x5f5d8f[_0xece4('0x34')]=_0x5f5d8f[_0xece4('0x34')][_0xece4('0x36')]?_0x5f5d8f[_0xece4('0x34')]:_0x3ea13e[_0xece4('0x2f')];if(_0x29fdaf[_0xece4('0x30')][_0xece4('0x41')]){_0x5f5d8f[_0xece4('0x42')]=[{'all':!![]}];}_0x5f5d8f=_[_0xece4('0x3f')]({},_0x5f5d8f,_0x29fdaf[_0xece4('0x40')]);return db[_0xece4('0x2a')][_0xece4('0x46')](_0x5f5d8f)['then'](handleEntityNotFound(_0x2d869c,null))[_0xece4('0x22')](respondWithResult(_0x2d869c,null))[_0xece4('0x44')](handleError(_0x2d869c,null));};exports['create']=function(_0x44ac37,_0x3f3611){return db[_0xece4('0x2a')][_0xece4('0x47')](_0x44ac37[_0xece4('0x48')],{})[_0xece4('0x22')](function(_0x3a0ba2){var _0x5cd013=_0x44ac37[_0xece4('0x49')][_0xece4('0x4a')]({'plain':!![]});if(!_0x5cd013)throw new Error(_0xece4('0x4b'));if(_0x5cd013[_0xece4('0x4c')]===_0xece4('0x49')){var _0x4934a0=_0x3a0ba2[_0xece4('0x4a')]({'plain':!![]});var _0x458ad8=_0xece4('0x23');return db['UserProfileSection']['find']({'where':{'name':_0x458ad8,'userProfileId':_0x5cd013[_0xece4('0x4d')]},'raw':!![]})[_0xece4('0x22')](function(_0x48c0b1){if(_0x48c0b1&&_0x48c0b1[_0xece4('0x4e')]===0x0){return db[_0xece4('0x24')]['create']({'name':_0x4934a0[_0xece4('0x27')],'resourceId':_0x4934a0['id'],'type':_0x48c0b1[_0xece4('0x27')],'sectionId':_0x48c0b1['id']},{})['then'](function(){return _0x3a0ba2;});}else{return _0x3a0ba2;}})[_0xece4('0x44')](function(_0x2013e4){logger[_0xece4('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2013e4);throw _0x2013e4;});}return _0x3a0ba2;})[_0xece4('0x22')](respondWithResult(_0x3f3611,0xc9))['catch'](handleError(_0x3f3611,null));};exports['update']=function(_0x5cc0ad,_0x2d9e0d){if(_0x5cc0ad['body']['id']){delete _0x5cc0ad['body']['id'];}return db[_0xece4('0x2a')]['find']({'where':{'id':_0x5cc0ad[_0xece4('0x4f')]['id']}})[_0xece4('0x22')](handleEntityNotFound(_0x2d9e0d,null))[_0xece4('0x22')](saveUpdates(_0x5cc0ad[_0xece4('0x48')],null))['then'](respondWithResult(_0x2d9e0d,null))['catch'](handleError(_0x2d9e0d,null));};exports[_0xece4('0x21')]=function(_0x4705ae,_0x372400){return db['Variable'][_0xece4('0x46')]({'where':{'id':_0x4705ae['params']['id']}})[_0xece4('0x22')](handleEntityNotFound(_0x372400,null))[_0xece4('0x22')](removeEntity(_0x372400,null))[_0xece4('0x44')](handleError(_0x372400,null));};