Built motion from commit 19a84241.|2.5.34
[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 _0x6487=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','status','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','UserProfileResource','end','sendStatus','error','stack','name','send','index','Variable','rawAttributes','fieldName','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','options','includeAll','include','findAll','catch','params','keys','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection'];(function(_0x3d5c72,_0x2bc73f){var _0x1a70de=function(_0x493c4a){while(--_0x493c4a){_0x3d5c72['push'](_0x3d5c72['shift']());}};_0x1a70de(++_0x2bc73f);}(_0x6487,0x138));var _0x7648=function(_0x2986a6,_0x5d20cd){_0x2986a6=_0x2986a6-0x0;var _0x1fabea=_0x6487[_0x2986a6];return _0x1fabea;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7648('0x0'));var zipdir=require(_0x7648('0x1'));var jsonpatch=require(_0x7648('0x2'));var rp=require(_0x7648('0x3'));var moment=require(_0x7648('0x4'));var BPromise=require(_0x7648('0x5'));var Mustache=require('mustache');var util=require(_0x7648('0x6'));var path=require('path');var sox=require(_0x7648('0x7'));var csv=require('to-csv');var ejs=require(_0x7648('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7648('0x9'));var squel=require('squel');var crypto=require(_0x7648('0xa'));var jsforce=require(_0x7648('0xb'));var deskjs=require(_0x7648('0xc'));var toCsv=require('to-csv');var querystring=require(_0x7648('0xd'));var Papa=require(_0x7648('0xe'));var Redis=require(_0x7648('0xf'));var authService=require(_0x7648('0x10'));var qs=require(_0x7648('0x11'));var as=require(_0x7648('0x12'));var hardwareService=require(_0x7648('0x13'));var logger=require(_0x7648('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x7648('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2c9c28,_0x394cd6){_0x394cd6=_0x394cd6||0xcc;return function(_0x5ceb03){if(_0x5ceb03){return _0x2c9c28['sendStatus'](_0x394cd6);}return _0x2c9c28[_0x7648('0x16')](_0x394cd6)['end']();};}function respondWithResult(_0x2d3d1a,_0x2ac3f4){_0x2ac3f4=_0x2ac3f4||0xc8;return function(_0x1788df){if(_0x1788df){return _0x2d3d1a[_0x7648('0x16')](_0x2ac3f4)['json'](_0x1788df);}};}function respondWithFilteredResult(_0x10f8e1,_0xac87dc){return function(_0x4c37eb){if(_0x4c37eb){var _0x4345aa=typeof _0xac87dc['offset']===_0x7648('0x17')&&typeof _0xac87dc[_0x7648('0x18')]===_0x7648('0x17');var _0xf6e293=_0x4c37eb[_0x7648('0x19')];var _0xba060b=_0x4345aa?0x0:_0xac87dc[_0x7648('0x1a')];var _0x572bd5=_0x4345aa?_0x4c37eb[_0x7648('0x19')]:_0xac87dc[_0x7648('0x1a')]+_0xac87dc[_0x7648('0x18')];var _0x30a125;if(_0x572bd5>=_0xf6e293){_0x572bd5=_0xf6e293;_0x30a125=0xc8;}else{_0x30a125=0xce;}_0x10f8e1['status'](_0x30a125);return _0x10f8e1[_0x7648('0x1b')](_0x7648('0x1c'),_0xba060b+'-'+_0x572bd5+'/'+_0xf6e293)['json'](_0x4c37eb);}return null;};}function patchUpdates(_0x50168){return function(_0x48dc93){try{jsonpatch[_0x7648('0x1d')](_0x48dc93,_0x50168,!![]);}catch(_0x76e679){return BPromise[_0x7648('0x1e')](_0x76e679);}return _0x48dc93[_0x7648('0x1f')]();};}function saveUpdates(_0xb1f344,_0x23ba0){return function(_0x389b91){if(_0x389b91){return _0x389b91[_0x7648('0x20')](_0xb1f344)[_0x7648('0x21')](function(_0xe3d8a0){return _0xe3d8a0;});}return null;};}function removeEntity(_0x183c8f,_0x3225f7){return function(_0x264493){if(_0x264493){return _0x264493[_0x7648('0x22')]()[_0x7648('0x21')](function(){var _0x18662f=_0x264493['get']({'plain':!![]});var _0x4fb152='Variables';return db[_0x7648('0x23')][_0x7648('0x22')]({'where':{'type':_0x4fb152,'resourceId':_0x18662f['id']}})['then'](function(){return _0x264493;});})[_0x7648('0x21')](function(){_0x183c8f[_0x7648('0x16')](0xcc)[_0x7648('0x24')]();});}};}function handleEntityNotFound(_0x4ee587,_0x222b1b){return function(_0x311e72){if(!_0x311e72){_0x4ee587[_0x7648('0x25')](0x194);}return _0x311e72;};}function handleError(_0x529b04,_0x2bba6d){_0x2bba6d=_0x2bba6d||0x1f4;return function(_0x59b30c){logger[_0x7648('0x26')](_0x59b30c[_0x7648('0x27')]);if(_0x59b30c[_0x7648('0x28')]){delete _0x59b30c[_0x7648('0x28')];}_0x529b04['status'](_0x2bba6d)[_0x7648('0x29')](_0x59b30c);};}exports[_0x7648('0x2a')]=function(_0x9f6bd3,_0x596fc5){var _0x5039b2={},_0x52b05e={},_0x40aeeb={'count':0x0,'rows':[]};var _0x3fa529=_['map'](db[_0x7648('0x2b')][_0x7648('0x2c')],function(_0x43404c){return{'name':_0x43404c[_0x7648('0x2d')],'type':_0x43404c['type'][_0x7648('0x2e')]};});_0x52b05e[_0x7648('0x2f')]=_[_0x7648('0x30')](_0x3fa529,_0x7648('0x28'));_0x52b05e[_0x7648('0x31')]=_['keys'](_0x9f6bd3[_0x7648('0x31')]);_0x52b05e[_0x7648('0x32')]=_[_0x7648('0x33')](_0x52b05e[_0x7648('0x2f')],_0x52b05e[_0x7648('0x31')]);_0x5039b2[_0x7648('0x34')]=_[_0x7648('0x33')](_0x52b05e['model'],qs[_0x7648('0x35')](_0x9f6bd3[_0x7648('0x31')][_0x7648('0x35')]));_0x5039b2[_0x7648('0x34')]=_0x5039b2['attributes'][_0x7648('0x36')]?_0x5039b2[_0x7648('0x34')]:_0x52b05e['model'];if(!_0x9f6bd3[_0x7648('0x31')][_0x7648('0x37')](_0x7648('0x38'))){_0x5039b2[_0x7648('0x18')]=qs['limit'](_0x9f6bd3[_0x7648('0x31')][_0x7648('0x18')]);_0x5039b2[_0x7648('0x1a')]=qs[_0x7648('0x1a')](_0x9f6bd3[_0x7648('0x31')][_0x7648('0x1a')]);}_0x5039b2[_0x7648('0x39')]=qs[_0x7648('0x3a')](_0x9f6bd3[_0x7648('0x31')]['sort']);_0x5039b2[_0x7648('0x3b')]=qs[_0x7648('0x32')](_[_0x7648('0x3c')](_0x9f6bd3[_0x7648('0x31')],_0x52b05e['filters']),_0x3fa529);if(_0x9f6bd3[_0x7648('0x31')][_0x7648('0x3d')]){_0x5039b2[_0x7648('0x3b')]=_[_0x7648('0x3e')](_0x5039b2[_0x7648('0x3b')],{'$or':_['map'](_0x3fa529,function(_0x65404a){if(_0x65404a[_0x7648('0x3f')]!=='VIRTUAL'){var _0x37f628={};_0x37f628[_0x65404a['name']]={'$like':'%'+_0x9f6bd3[_0x7648('0x31')][_0x7648('0x3d')]+'%'};return _0x37f628;}})});}_0x5039b2=_[_0x7648('0x3e')]({},_0x5039b2,_0x9f6bd3[_0x7648('0x40')]);var _0x4621d0={'where':_0x5039b2[_0x7648('0x3b')]};return db['Variable'][_0x7648('0x19')](_0x4621d0)[_0x7648('0x21')](function(_0x5e73c7){_0x40aeeb[_0x7648('0x19')]=_0x5e73c7;if(_0x9f6bd3[_0x7648('0x31')][_0x7648('0x41')]){_0x5039b2[_0x7648('0x42')]=[{'all':!![]}];}return db['Variable'][_0x7648('0x43')](_0x5039b2);})[_0x7648('0x21')](function(_0x236b26){_0x40aeeb['rows']=_0x236b26;return _0x40aeeb;})[_0x7648('0x21')](respondWithFilteredResult(_0x596fc5,_0x5039b2))[_0x7648('0x44')](handleError(_0x596fc5,null));};exports['show']=function(_0x3080c3,_0x3eb491){var _0x21bc00={'raw':!![],'where':{'id':_0x3080c3[_0x7648('0x45')]['id']}},_0xe52fbd={};_0xe52fbd[_0x7648('0x2f')]=_[_0x7648('0x46')](db[_0x7648('0x2b')][_0x7648('0x2c')]);_0xe52fbd[_0x7648('0x31')]=_[_0x7648('0x46')](_0x3080c3[_0x7648('0x31')]);_0xe52fbd[_0x7648('0x32')]=_['intersection'](_0xe52fbd[_0x7648('0x2f')],_0xe52fbd['query']);_0x21bc00[_0x7648('0x34')]=_['intersection'](_0xe52fbd['model'],qs[_0x7648('0x35')](_0x3080c3[_0x7648('0x31')][_0x7648('0x35')]));_0x21bc00[_0x7648('0x34')]=_0x21bc00['attributes'][_0x7648('0x36')]?_0x21bc00['attributes']:_0xe52fbd['model'];if(_0x3080c3['query'][_0x7648('0x41')]){_0x21bc00['include']=[{'all':!![]}];}_0x21bc00=_[_0x7648('0x3e')]({},_0x21bc00,_0x3080c3[_0x7648('0x40')]);return db['Variable'][_0x7648('0x47')](_0x21bc00)[_0x7648('0x21')](handleEntityNotFound(_0x3eb491,null))[_0x7648('0x21')](respondWithResult(_0x3eb491,null))[_0x7648('0x44')](handleError(_0x3eb491,null));};exports[_0x7648('0x48')]=function(_0x34279d,_0x355561){return db[_0x7648('0x2b')][_0x7648('0x48')](_0x34279d[_0x7648('0x49')],{})[_0x7648('0x21')](function(_0x419bd0){var _0x18f618=_0x34279d['user'][_0x7648('0x4a')]({'plain':!![]});if(!_0x18f618)throw new Error(_0x7648('0x4b'));if(_0x18f618['role']===_0x7648('0x4c')){var _0x389b71=_0x419bd0[_0x7648('0x4a')]({'plain':!![]});var _0x29f500='Variables';return db[_0x7648('0x4d')][_0x7648('0x47')]({'where':{'name':_0x29f500,'userProfileId':_0x18f618['userProfileId']},'raw':!![]})[_0x7648('0x21')](function(_0x1de18a){if(_0x1de18a&&_0x1de18a['autoAssociation']===0x0){return db[_0x7648('0x23')]['create']({'name':_0x389b71[_0x7648('0x28')],'resourceId':_0x389b71['id'],'type':_0x1de18a['name'],'sectionId':_0x1de18a['id']},{})['then'](function(){return _0x419bd0;});}else{return _0x419bd0;}})[_0x7648('0x44')](function(_0x49748d){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x49748d);throw _0x49748d;});}return _0x419bd0;})[_0x7648('0x21')](respondWithResult(_0x355561,0xc9))[_0x7648('0x44')](handleError(_0x355561,null));};exports['update']=function(_0x9df223,_0x3f14aa){if(_0x9df223[_0x7648('0x49')]['id']){delete _0x9df223['body']['id'];}return db[_0x7648('0x2b')][_0x7648('0x47')]({'where':{'id':_0x9df223['params']['id']}})['then'](handleEntityNotFound(_0x3f14aa,null))[_0x7648('0x21')](saveUpdates(_0x9df223['body'],null))[_0x7648('0x21')](respondWithResult(_0x3f14aa,null))['catch'](handleError(_0x3f14aa,null));};exports[_0x7648('0x22')]=function(_0x44ffda,_0x47d1af){return db[_0x7648('0x2b')]['find']({'where':{'id':_0x44ffda[_0x7648('0x45')]['id']}})['then'](handleEntityNotFound(_0x47d1af,null))['then'](removeEntity(_0x47d1af,null))['catch'](handleError(_0x47d1af,null));};