dfbf0e8cace66b7aa0296dc45c0f9f2929f5f5a3
[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 _0x31ec=['lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','destroy','get','Variables','UserProfileResource','end','error','stack','name','send','index','map','Variable','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','find','create','body','role','user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra'];(function(_0x5c08cb,_0x456960){var _0x147907=function(_0x1da1be){while(--_0x1da1be){_0x5c08cb['push'](_0x5c08cb['shift']());}};_0x147907(++_0x456960);}(_0x31ec,0xa0));var _0xc31e=function(_0x564c8e,_0x512f23){_0x564c8e=_0x564c8e-0x0;var _0x397f28=_0x31ec[_0x564c8e];return _0x397f28;};'use strict';var emlformat=require(_0xc31e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc31e('0x1'));var jsonpatch=require(_0xc31e('0x2'));var rp=require(_0xc31e('0x3'));var moment=require(_0xc31e('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xc31e('0x5'));var util=require(_0xc31e('0x6'));var path=require(_0xc31e('0x7'));var sox=require(_0xc31e('0x8'));var csv=require(_0xc31e('0x9'));var ejs=require(_0xc31e('0xa'));var fs=require('fs');var fs_extra=require(_0xc31e('0xb'));var _=require(_0xc31e('0xc'));var squel=require(_0xc31e('0xd'));var crypto=require(_0xc31e('0xe'));var jsforce=require(_0xc31e('0xf'));var deskjs=require(_0xc31e('0x10'));var toCsv=require('to-csv');var querystring=require(_0xc31e('0x11'));var Papa=require(_0xc31e('0x12'));var Redis=require(_0xc31e('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xc31e('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc31e('0x15'));var logger=require(_0xc31e('0x16'))(_0xc31e('0x17'));var utils=require(_0xc31e('0x18'));var config=require(_0xc31e('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xc31e('0x1a'))['db'];function respondWithStatusCode(_0x13667b,_0x2aab4b){_0x2aab4b=_0x2aab4b||0xcc;return function(_0x3c1f36){if(_0x3c1f36){return _0x13667b['sendStatus'](_0x2aab4b);}return _0x13667b[_0xc31e('0x1b')](_0x2aab4b)['end']();};}function respondWithResult(_0x590fcb,_0x582a67){_0x582a67=_0x582a67||0xc8;return function(_0x1a61a3){if(_0x1a61a3){return _0x590fcb['status'](_0x582a67)[_0xc31e('0x1c')](_0x1a61a3);}};}function respondWithFilteredResult(_0x56a15c,_0x139179){return function(_0x304041){if(_0x304041){var _0x2b32b4=typeof _0x139179['offset']===_0xc31e('0x1d')&&typeof _0x139179[_0xc31e('0x1e')]===_0xc31e('0x1d');var _0x5df603=_0x304041[_0xc31e('0x1f')];var _0x239b3a=_0x2b32b4?0x0:_0x139179[_0xc31e('0x20')];var _0x3ac23e=_0x2b32b4?_0x304041[_0xc31e('0x1f')]:_0x139179[_0xc31e('0x20')]+_0x139179[_0xc31e('0x1e')];var _0x47c83a;if(_0x3ac23e>=_0x5df603){_0x3ac23e=_0x5df603;_0x47c83a=0xc8;}else{_0x47c83a=0xce;}_0x56a15c[_0xc31e('0x1b')](_0x47c83a);return _0x56a15c[_0xc31e('0x21')](_0xc31e('0x22'),_0x239b3a+'-'+_0x3ac23e+'/'+_0x5df603)[_0xc31e('0x1c')](_0x304041);}return null;};}function patchUpdates(_0x5dc39f){return function(_0x5e9c3b){try{jsonpatch['apply'](_0x5e9c3b,_0x5dc39f,!![]);}catch(_0x2a542a){return BPromise[_0xc31e('0x23')](_0x2a542a);}return _0x5e9c3b[_0xc31e('0x24')]();};}function saveUpdates(_0x412d6c,_0x5aabac){return function(_0x177fce){if(_0x177fce){return _0x177fce[_0xc31e('0x25')](_0x412d6c)[_0xc31e('0x26')](function(_0x4d4fb3){return _0x4d4fb3;});}return null;};}function removeEntity(_0x1de8bc,_0x1bbfde){return function(_0x59823c){if(_0x59823c){return _0x59823c[_0xc31e('0x27')]()[_0xc31e('0x26')](function(){var _0x168bbc=_0x59823c[_0xc31e('0x28')]({'plain':!![]});var _0xd56dfb=_0xc31e('0x29');return db[_0xc31e('0x2a')]['destroy']({'where':{'type':_0xd56dfb,'resourceId':_0x168bbc['id']}})[_0xc31e('0x26')](function(){return _0x59823c;});})['then'](function(){_0x1de8bc[_0xc31e('0x1b')](0xcc)[_0xc31e('0x2b')]();});}};}function handleEntityNotFound(_0x24f925,_0x5e62b8){return function(_0x502193){if(!_0x502193){_0x24f925['sendStatus'](0x194);}return _0x502193;};}function handleError(_0x3c440c,_0x54721e){_0x54721e=_0x54721e||0x1f4;return function(_0x2c697e){logger[_0xc31e('0x2c')](_0x2c697e[_0xc31e('0x2d')]);if(_0x2c697e[_0xc31e('0x2e')]){delete _0x2c697e[_0xc31e('0x2e')];}_0x3c440c[_0xc31e('0x1b')](_0x54721e)[_0xc31e('0x2f')](_0x2c697e);};}exports[_0xc31e('0x30')]=function(_0x585370,_0x122925){var _0x278d1a={},_0x41fe18={},_0x3659fc={'count':0x0,'rows':[]};var _0x319d8b=_[_0xc31e('0x31')](db[_0xc31e('0x32')][_0xc31e('0x33')],function(_0x40a5ca){return{'name':_0x40a5ca[_0xc31e('0x34')],'type':_0x40a5ca[_0xc31e('0x35')][_0xc31e('0x36')]};});_0x41fe18['model']=_[_0xc31e('0x31')](_0x319d8b,'name');_0x41fe18[_0xc31e('0x37')]=_[_0xc31e('0x38')](_0x585370[_0xc31e('0x37')]);_0x41fe18[_0xc31e('0x39')]=_[_0xc31e('0x3a')](_0x41fe18[_0xc31e('0x3b')],_0x41fe18[_0xc31e('0x37')]);_0x278d1a[_0xc31e('0x3c')]=_['intersection'](_0x41fe18[_0xc31e('0x3b')],qs[_0xc31e('0x3d')](_0x585370['query'][_0xc31e('0x3d')]));_0x278d1a[_0xc31e('0x3c')]=_0x278d1a[_0xc31e('0x3c')][_0xc31e('0x3e')]?_0x278d1a['attributes']:_0x41fe18[_0xc31e('0x3b')];if(!_0x585370[_0xc31e('0x37')]['hasOwnProperty'](_0xc31e('0x3f'))){_0x278d1a[_0xc31e('0x1e')]=qs[_0xc31e('0x1e')](_0x585370[_0xc31e('0x37')]['limit']);_0x278d1a[_0xc31e('0x20')]=qs[_0xc31e('0x20')](_0x585370['query'][_0xc31e('0x20')]);}_0x278d1a[_0xc31e('0x40')]=qs['sort'](_0x585370[_0xc31e('0x37')][_0xc31e('0x41')]);_0x278d1a[_0xc31e('0x42')]=qs[_0xc31e('0x39')](_[_0xc31e('0x43')](_0x585370['query'],_0x41fe18['filters']),_0x319d8b);if(_0x585370[_0xc31e('0x37')][_0xc31e('0x44')]){_0x278d1a[_0xc31e('0x42')]=_[_0xc31e('0x45')](_0x278d1a[_0xc31e('0x42')],{'$or':_[_0xc31e('0x31')](_0x319d8b,function(_0x16e438){if(_0x16e438['type']!=='VIRTUAL'){var _0x336b2d={};_0x336b2d[_0x16e438['name']]={'$like':'%'+_0x585370[_0xc31e('0x37')][_0xc31e('0x44')]+'%'};return _0x336b2d;}})});}_0x278d1a=_['merge']({},_0x278d1a,_0x585370[_0xc31e('0x46')]);var _0x5025dc={'where':_0x278d1a[_0xc31e('0x42')]};return db['Variable']['count'](_0x5025dc)[_0xc31e('0x26')](function(_0x288804){_0x3659fc[_0xc31e('0x1f')]=_0x288804;if(_0x585370[_0xc31e('0x37')][_0xc31e('0x47')]){_0x278d1a[_0xc31e('0x48')]=[{'all':!![]}];}return db[_0xc31e('0x32')][_0xc31e('0x49')](_0x278d1a);})['then'](function(_0x48db8d){_0x3659fc[_0xc31e('0x4a')]=_0x48db8d;return _0x3659fc;})[_0xc31e('0x26')](respondWithFilteredResult(_0x122925,_0x278d1a))[_0xc31e('0x4b')](handleError(_0x122925,null));};exports[_0xc31e('0x4c')]=function(_0x37f814,_0x24e4ba){var _0x1f68fd={'raw':!![],'where':{'id':_0x37f814['params']['id']}},_0x5b481a={};_0x5b481a[_0xc31e('0x3b')]=_['keys'](db[_0xc31e('0x32')][_0xc31e('0x33')]);_0x5b481a[_0xc31e('0x37')]=_[_0xc31e('0x38')](_0x37f814[_0xc31e('0x37')]);_0x5b481a[_0xc31e('0x39')]=_['intersection'](_0x5b481a['model'],_0x5b481a[_0xc31e('0x37')]);_0x1f68fd[_0xc31e('0x3c')]=_[_0xc31e('0x3a')](_0x5b481a['model'],qs[_0xc31e('0x3d')](_0x37f814[_0xc31e('0x37')][_0xc31e('0x3d')]));_0x1f68fd[_0xc31e('0x3c')]=_0x1f68fd[_0xc31e('0x3c')]['length']?_0x1f68fd['attributes']:_0x5b481a[_0xc31e('0x3b')];if(_0x37f814[_0xc31e('0x37')][_0xc31e('0x47')]){_0x1f68fd[_0xc31e('0x48')]=[{'all':!![]}];}_0x1f68fd=_['merge']({},_0x1f68fd,_0x37f814['options']);return db[_0xc31e('0x32')][_0xc31e('0x4d')](_0x1f68fd)[_0xc31e('0x26')](handleEntityNotFound(_0x24e4ba,null))[_0xc31e('0x26')](respondWithResult(_0x24e4ba,null))[_0xc31e('0x4b')](handleError(_0x24e4ba,null));};exports[_0xc31e('0x4e')]=function(_0x56b90f,_0x18c253){return db['Variable']['create'](_0x56b90f[_0xc31e('0x4f')],{})[_0xc31e('0x26')](function(_0x7c8bce){var _0x4a4e5d=_0x56b90f['user'][_0xc31e('0x28')]({'plain':!![]});if(!_0x4a4e5d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4a4e5d[_0xc31e('0x50')]===_0xc31e('0x51')){var _0xbd97ec=_0x7c8bce[_0xc31e('0x28')]({'plain':!![]});var _0x425f74=_0xc31e('0x29');return db[_0xc31e('0x52')][_0xc31e('0x4d')]({'where':{'name':_0x425f74,'userProfileId':_0x4a4e5d[_0xc31e('0x53')]},'raw':!![]})[_0xc31e('0x26')](function(_0x28d6e2){if(_0x28d6e2&&_0x28d6e2['autoAssociation']===0x0){return db[_0xc31e('0x2a')][_0xc31e('0x4e')]({'name':_0xbd97ec[_0xc31e('0x2e')],'resourceId':_0xbd97ec['id'],'type':_0x28d6e2[_0xc31e('0x2e')],'sectionId':_0x28d6e2['id']},{})['then'](function(){return _0x7c8bce;});}else{return _0x7c8bce;}})['catch'](function(_0x52f2a5){logger[_0xc31e('0x2c')](_0xc31e('0x54'),_0x52f2a5);throw _0x52f2a5;});}return _0x7c8bce;})[_0xc31e('0x26')](respondWithResult(_0x18c253,0xc9))[_0xc31e('0x4b')](handleError(_0x18c253,null));};exports[_0xc31e('0x25')]=function(_0xe01cb3,_0x6cb0cf){if(_0xe01cb3[_0xc31e('0x4f')]['id']){delete _0xe01cb3['body']['id'];}return db[_0xc31e('0x32')][_0xc31e('0x4d')]({'where':{'id':_0xe01cb3[_0xc31e('0x55')]['id']}})[_0xc31e('0x26')](handleEntityNotFound(_0x6cb0cf,null))['then'](saveUpdates(_0xe01cb3[_0xc31e('0x4f')],null))[_0xc31e('0x26')](respondWithResult(_0x6cb0cf,null))[_0xc31e('0x4b')](handleError(_0x6cb0cf,null));};exports[_0xc31e('0x27')]=function(_0x3e9954,_0x5e6d53){return db[_0xc31e('0x32')][_0xc31e('0x4d')]({'where':{'id':_0x3e9954[_0xc31e('0x55')]['id']}})[_0xc31e('0x26')](handleEntityNotFound(_0x5e6d53,null))[_0xc31e('0x26')](removeEntity(_0x5e6d53,null))['catch'](handleError(_0x5e6d53,null));};