Built motion from commit 9d7072cc.|2.5.39
[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 _0xaf8b=['index','map','Variable','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','pick','where','merge','VIRTUAL','filter','options','findAll','catch','params','keys','includeAll','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','count','limit','Content-Range','apply','reject','update','then','get','UserProfileResource','error','name','send'];(function(_0x282ccc,_0x5d66a1){var _0x27c2dd=function(_0x58431a){while(--_0x58431a){_0x282ccc['push'](_0x282ccc['shift']());}};_0x27c2dd(++_0x5d66a1);}(_0xaf8b,0x1e6));var _0xbaf8=function(_0x140355,_0x425c3f){_0x140355=_0x140355-0x0;var _0xf2be29=_0xaf8b[_0x140355];return _0xf2be29;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbaf8('0x0'));var zipdir=require(_0xbaf8('0x1'));var jsonpatch=require(_0xbaf8('0x2'));var rp=require(_0xbaf8('0x3'));var moment=require(_0xbaf8('0x4'));var BPromise=require(_0xbaf8('0x5'));var Mustache=require(_0xbaf8('0x6'));var util=require(_0xbaf8('0x7'));var path=require(_0xbaf8('0x8'));var sox=require('sox');var csv=require(_0xbaf8('0x9'));var ejs=require(_0xbaf8('0xa'));var fs=require('fs');var fs_extra=require(_0xbaf8('0xb'));var _=require(_0xbaf8('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xbaf8('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xbaf8('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xbaf8('0xf'));var as=require(_0xbaf8('0x10'));var hardwareService=require(_0xbaf8('0x11'));var logger=require(_0xbaf8('0x12'))('api');var utils=require(_0xbaf8('0x13'));var config=require(_0xbaf8('0x14'));var licenseUtil=require(_0xbaf8('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x43e843,_0x47bd76){_0x47bd76=_0x47bd76||0xcc;return function(_0x5e8be4){if(_0x5e8be4){return _0x43e843[_0xbaf8('0x16')](_0x47bd76);}return _0x43e843[_0xbaf8('0x17')](_0x47bd76)['end']();};}function respondWithResult(_0x9d7f50,_0x13b3b8){_0x13b3b8=_0x13b3b8||0xc8;return function(_0x2a319a){if(_0x2a319a){return _0x9d7f50['status'](_0x13b3b8)[_0xbaf8('0x18')](_0x2a319a);}};}function respondWithFilteredResult(_0x30a1a4,_0x4d0015){return function(_0x1012b2){if(_0x1012b2){var _0x5edee3=typeof _0x4d0015[_0xbaf8('0x19')]==='undefined'&&typeof _0x4d0015['limit']===_0xbaf8('0x1a');var _0x11c93f=_0x1012b2[_0xbaf8('0x1b')];var _0x59fde2=_0x5edee3?0x0:_0x4d0015['offset'];var _0x1b0136=_0x5edee3?_0x1012b2['count']:_0x4d0015[_0xbaf8('0x19')]+_0x4d0015[_0xbaf8('0x1c')];var _0x411978;if(_0x1b0136>=_0x11c93f){_0x1b0136=_0x11c93f;_0x411978=0xc8;}else{_0x411978=0xce;}_0x30a1a4[_0xbaf8('0x17')](_0x411978);return _0x30a1a4['set'](_0xbaf8('0x1d'),_0x59fde2+'-'+_0x1b0136+'/'+_0x11c93f)[_0xbaf8('0x18')](_0x1012b2);}return null;};}function patchUpdates(_0x14c20d){return function(_0x52f86f){try{jsonpatch[_0xbaf8('0x1e')](_0x52f86f,_0x14c20d,!![]);}catch(_0xecec8f){return BPromise[_0xbaf8('0x1f')](_0xecec8f);}return _0x52f86f['save']();};}function saveUpdates(_0xe3f40d,_0x347cae){return function(_0x34257b){if(_0x34257b){return _0x34257b[_0xbaf8('0x20')](_0xe3f40d)[_0xbaf8('0x21')](function(_0xad21e0){return _0xad21e0;});}return null;};}function removeEntity(_0x51092e,_0x332667){return function(_0x25112b){if(_0x25112b){return _0x25112b['destroy']()['then'](function(){var _0x225d3f=_0x25112b[_0xbaf8('0x22')]({'plain':!![]});var _0x181b47='Variables';return db[_0xbaf8('0x23')]['destroy']({'where':{'type':_0x181b47,'resourceId':_0x225d3f['id']}})[_0xbaf8('0x21')](function(){return _0x25112b;});})[_0xbaf8('0x21')](function(){_0x51092e[_0xbaf8('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4c065d,_0x61eebb){return function(_0x2b7fda){if(!_0x2b7fda){_0x4c065d[_0xbaf8('0x16')](0x194);}return _0x2b7fda;};}function handleError(_0x3a5e72,_0x117169){_0x117169=_0x117169||0x1f4;return function(_0x10ae1b){logger[_0xbaf8('0x24')](_0x10ae1b['stack']);if(_0x10ae1b[_0xbaf8('0x25')]){delete _0x10ae1b['name'];}_0x3a5e72[_0xbaf8('0x17')](_0x117169)[_0xbaf8('0x26')](_0x10ae1b);};}exports[_0xbaf8('0x27')]=function(_0x1f536e,_0x35d228){var _0x4e9935={},_0x3f9e47={},_0x24fc5a={'count':0x0,'rows':[]};var _0x184cfb=_[_0xbaf8('0x28')](db[_0xbaf8('0x29')][_0xbaf8('0x2a')],function(_0x13ec46){return{'name':_0x13ec46[_0xbaf8('0x2b')],'type':_0x13ec46[_0xbaf8('0x2c')][_0xbaf8('0x2d')]};});_0x3f9e47[_0xbaf8('0x2e')]=_[_0xbaf8('0x28')](_0x184cfb,_0xbaf8('0x25'));_0x3f9e47[_0xbaf8('0x2f')]=_['keys'](_0x1f536e[_0xbaf8('0x2f')]);_0x3f9e47[_0xbaf8('0x30')]=_[_0xbaf8('0x31')](_0x3f9e47['model'],_0x3f9e47[_0xbaf8('0x2f')]);_0x4e9935[_0xbaf8('0x32')]=_[_0xbaf8('0x31')](_0x3f9e47['model'],qs[_0xbaf8('0x33')](_0x1f536e['query']['fields']));_0x4e9935[_0xbaf8('0x32')]=_0x4e9935[_0xbaf8('0x32')][_0xbaf8('0x34')]?_0x4e9935['attributes']:_0x3f9e47['model'];if(!_0x1f536e[_0xbaf8('0x2f')][_0xbaf8('0x35')](_0xbaf8('0x36'))){_0x4e9935['limit']=qs[_0xbaf8('0x1c')](_0x1f536e[_0xbaf8('0x2f')][_0xbaf8('0x1c')]);_0x4e9935[_0xbaf8('0x19')]=qs[_0xbaf8('0x19')](_0x1f536e[_0xbaf8('0x2f')]['offset']);}_0x4e9935['order']=qs['sort'](_0x1f536e[_0xbaf8('0x2f')]['sort']);_0x4e9935['where']=qs['filters'](_[_0xbaf8('0x37')](_0x1f536e[_0xbaf8('0x2f')],_0x3f9e47[_0xbaf8('0x30')]),_0x184cfb);if(_0x1f536e[_0xbaf8('0x2f')]['filter']){_0x4e9935[_0xbaf8('0x38')]=_[_0xbaf8('0x39')](_0x4e9935[_0xbaf8('0x38')],{'$or':_['map'](_0x184cfb,function(_0x14306b){if(_0x14306b[_0xbaf8('0x2c')]!==_0xbaf8('0x3a')){var _0x451fdd={};_0x451fdd[_0x14306b[_0xbaf8('0x25')]]={'$like':'%'+_0x1f536e[_0xbaf8('0x2f')][_0xbaf8('0x3b')]+'%'};return _0x451fdd;}})});}_0x4e9935=_['merge']({},_0x4e9935,_0x1f536e[_0xbaf8('0x3c')]);var _0x505f94={'where':_0x4e9935[_0xbaf8('0x38')]};return db[_0xbaf8('0x29')]['count'](_0x505f94)[_0xbaf8('0x21')](function(_0x5dd2de){_0x24fc5a[_0xbaf8('0x1b')]=_0x5dd2de;if(_0x1f536e['query']['includeAll']){_0x4e9935['include']=[{'all':!![]}];}return db[_0xbaf8('0x29')][_0xbaf8('0x3d')](_0x4e9935);})['then'](function(_0xc3398d){_0x24fc5a['rows']=_0xc3398d;return _0x24fc5a;})[_0xbaf8('0x21')](respondWithFilteredResult(_0x35d228,_0x4e9935))[_0xbaf8('0x3e')](handleError(_0x35d228,null));};exports['show']=function(_0x54f3c8,_0x1106d5){var _0x87db6={'raw':!![],'where':{'id':_0x54f3c8[_0xbaf8('0x3f')]['id']}},_0x50f39c={};_0x50f39c[_0xbaf8('0x2e')]=_[_0xbaf8('0x40')](db[_0xbaf8('0x29')][_0xbaf8('0x2a')]);_0x50f39c[_0xbaf8('0x2f')]=_['keys'](_0x54f3c8[_0xbaf8('0x2f')]);_0x50f39c[_0xbaf8('0x30')]=_[_0xbaf8('0x31')](_0x50f39c[_0xbaf8('0x2e')],_0x50f39c[_0xbaf8('0x2f')]);_0x87db6[_0xbaf8('0x32')]=_['intersection'](_0x50f39c[_0xbaf8('0x2e')],qs['fields'](_0x54f3c8['query']['fields']));_0x87db6[_0xbaf8('0x32')]=_0x87db6[_0xbaf8('0x32')][_0xbaf8('0x34')]?_0x87db6['attributes']:_0x50f39c[_0xbaf8('0x2e')];if(_0x54f3c8[_0xbaf8('0x2f')][_0xbaf8('0x41')]){_0x87db6[_0xbaf8('0x42')]=[{'all':!![]}];}_0x87db6=_['merge']({},_0x87db6,_0x54f3c8['options']);return db[_0xbaf8('0x29')][_0xbaf8('0x43')](_0x87db6)['then'](handleEntityNotFound(_0x1106d5,null))['then'](respondWithResult(_0x1106d5,null))[_0xbaf8('0x3e')](handleError(_0x1106d5,null));};exports['create']=function(_0xd33bea,_0x4a0918){return db[_0xbaf8('0x29')][_0xbaf8('0x44')](_0xd33bea[_0xbaf8('0x45')],{})['then'](function(_0x240148){var _0x3f73b4=_0xd33bea['user']['get']({'plain':!![]});if(!_0x3f73b4)throw new Error(_0xbaf8('0x46'));if(_0x3f73b4[_0xbaf8('0x47')]===_0xbaf8('0x48')){var _0x5b186e=_0x240148[_0xbaf8('0x22')]({'plain':!![]});var _0x3ab790='Variables';return db['UserProfileSection'][_0xbaf8('0x43')]({'where':{'name':_0x3ab790,'userProfileId':_0x3f73b4[_0xbaf8('0x49')]},'raw':!![]})['then'](function(_0x406f23){if(_0x406f23&&_0x406f23['autoAssociation']===0x0){return db['UserProfileResource'][_0xbaf8('0x44')]({'name':_0x5b186e[_0xbaf8('0x25')],'resourceId':_0x5b186e['id'],'type':_0x406f23['name'],'sectionId':_0x406f23['id']},{})[_0xbaf8('0x21')](function(){return _0x240148;});}else{return _0x240148;}})[_0xbaf8('0x3e')](function(_0x1c4e01){logger[_0xbaf8('0x24')](_0xbaf8('0x4a'),_0x1c4e01);throw _0x1c4e01;});}return _0x240148;})[_0xbaf8('0x21')](respondWithResult(_0x4a0918,0xc9))[_0xbaf8('0x3e')](handleError(_0x4a0918,null));};exports['update']=function(_0x5ea25e,_0x39d2f1){if(_0x5ea25e[_0xbaf8('0x45')]['id']){delete _0x5ea25e[_0xbaf8('0x45')]['id'];}return db[_0xbaf8('0x29')][_0xbaf8('0x43')]({'where':{'id':_0x5ea25e['params']['id']}})[_0xbaf8('0x21')](handleEntityNotFound(_0x39d2f1,null))[_0xbaf8('0x21')](saveUpdates(_0x5ea25e[_0xbaf8('0x45')],null))['then'](respondWithResult(_0x39d2f1,null))[_0xbaf8('0x3e')](handleError(_0x39d2f1,null));};exports['destroy']=function(_0x2448ee,_0x51ea1d){return db['Variable'][_0xbaf8('0x43')]({'where':{'id':_0x2448ee['params']['id']}})[_0xbaf8('0x21')](handleEntityNotFound(_0x51ea1d,null))[_0xbaf8('0x21')](removeEntity(_0x51ea1d,null))['catch'](handleError(_0x51ea1d,null));};