Built motion from commit (unavailable).|2.5.8
[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 _0xaae8=['squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','update','then','destroy','get','Variables','UserProfileResource','stack','name','send','index','Variable','rawAttributes','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','merge','filter','options','include','findAll','rows','catch','show','params','includeAll','user','role','UserProfileSection','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','html-pdf','eml-format','rimraf','zip-dir','request-promise','mustache','util','to-csv','ejs','lodash'];(function(_0x30db08,_0x50ba0c){var _0x2e8f00=function(_0x4c3ddc){while(--_0x4c3ddc){_0x30db08['push'](_0x30db08['shift']());}};_0x2e8f00(++_0x50ba0c);}(_0xaae8,0x90));var _0x8aae=function(_0x56f8b4,_0xa55681){_0x56f8b4=_0x56f8b4-0x0;var _0x32cdd8=_0xaae8[_0x56f8b4];return _0x32cdd8;};'use strict';var pdf=require(_0x8aae('0x0'));var emlformat=require(_0x8aae('0x1'));var rimraf=require(_0x8aae('0x2'));var zipdir=require(_0x8aae('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8aae('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x8aae('0x5'));var util=require(_0x8aae('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x8aae('0x7'));var ejs=require(_0x8aae('0x8'));var fs=require('fs');var _=require(_0x8aae('0x9'));var squel=require(_0x8aae('0xa'));var crypto=require(_0x8aae('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x8aae('0xc'));var toCsv=require(_0x8aae('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x8aae('0xd'));var authService=require(_0x8aae('0xe'));var qs=require(_0x8aae('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8aae('0x10'));var utils=require(_0x8aae('0x11'));var config=require(_0x8aae('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x8aae('0x13'))['db'];function respondWithStatusCode(_0x1ee8fe,_0x49f830){_0x49f830=_0x49f830||0xcc;return function(_0x5865a1){if(_0x5865a1){return _0x1ee8fe[_0x8aae('0x14')](_0x49f830);}return _0x1ee8fe[_0x8aae('0x15')](_0x49f830)[_0x8aae('0x16')]();};}function respondWithResult(_0x112b77,_0x1654c1){_0x1654c1=_0x1654c1||0xc8;return function(_0x570417){if(_0x570417){return _0x112b77[_0x8aae('0x15')](_0x1654c1)['json'](_0x570417);}};}function respondWithFilteredResult(_0x10e462,_0x3025f4){return function(_0x51efd8){if(_0x51efd8){var _0x3d2e04=_0x51efd8[_0x8aae('0x17')],_0x2e608f=_0x3025f4[_0x8aae('0x18')],_0x5ee46b=_0x3025f4[_0x8aae('0x18')]+_0x3025f4[_0x8aae('0x19')],_0x4fa72c;if(_0x5ee46b>=_0x3d2e04){_0x5ee46b=_0x3d2e04;_0x4fa72c=0xc8;}else{_0x4fa72c=0xce;}_0x10e462[_0x8aae('0x15')](_0x4fa72c);return _0x10e462[_0x8aae('0x1a')](_0x8aae('0x1b'),_0x2e608f+'-'+_0x5ee46b+'/'+_0x3d2e04)[_0x8aae('0x1c')](_0x51efd8);}return null;};}function patchUpdates(_0x4df519){return function(_0x2dda17){try{jsonpatch[_0x8aae('0x1d')](_0x2dda17,_0x4df519,!![]);}catch(_0x20025a){return BPromise[_0x8aae('0x1e')](_0x20025a);}return _0x2dda17['save']();};}function saveUpdates(_0xf123d9,_0x356aff){return function(_0x2a559e){if(_0x2a559e){return _0x2a559e[_0x8aae('0x1f')](_0xf123d9)[_0x8aae('0x20')](function(_0x12caa6){return _0x12caa6;});}return null;};}function removeEntity(_0x27c45d,_0x54b54a){return function(_0x59bf0d){if(_0x59bf0d){return _0x59bf0d[_0x8aae('0x21')]()[_0x8aae('0x20')](function(){var _0x37a015=_0x59bf0d[_0x8aae('0x22')]({'plain':!![]});var _0x3fc3d1=_0x8aae('0x23');return db[_0x8aae('0x24')]['destroy']({'where':{'type':_0x3fc3d1,'resourceId':_0x37a015['id']}})['then'](function(){return _0x59bf0d;});})[_0x8aae('0x20')](function(){_0x27c45d['status'](0xcc)[_0x8aae('0x16')]();});}};}function handleEntityNotFound(_0x51f333,_0x21c54a){return function(_0x43ab60){if(!_0x43ab60){_0x51f333[_0x8aae('0x14')](0x194);}return _0x43ab60;};}function handleError(_0x11867e,_0x1ce101){_0x1ce101=_0x1ce101||0x1f4;return function(_0x3c4ba6){logger['error'](_0x3c4ba6[_0x8aae('0x25')]);if(_0x3c4ba6['name']){delete _0x3c4ba6[_0x8aae('0x26')];}_0x11867e['status'](_0x1ce101)[_0x8aae('0x27')](_0x3c4ba6);};}exports[_0x8aae('0x28')]=function(_0x33c615,_0x582180){var _0x6ddad={},_0x4bd978={},_0x38f7aa={'count':0x0,'rows':[]};var _0xec7dcf=_['map'](db[_0x8aae('0x29')][_0x8aae('0x2a')],function(_0x13937e){return{'name':_0x13937e['fieldName'],'type':_0x13937e[_0x8aae('0x2b')][_0x8aae('0x2c')]};});_0x4bd978[_0x8aae('0x2d')]=_[_0x8aae('0x2e')](_0xec7dcf,'name');_0x4bd978[_0x8aae('0x2f')]=_[_0x8aae('0x30')](_0x33c615[_0x8aae('0x2f')]);_0x4bd978[_0x8aae('0x31')]=_[_0x8aae('0x32')](_0x4bd978[_0x8aae('0x2d')],_0x4bd978[_0x8aae('0x2f')]);_0x6ddad['attributes']=_[_0x8aae('0x32')](_0x4bd978[_0x8aae('0x2d')],qs['fields'](_0x33c615['query'][_0x8aae('0x33')]));_0x6ddad[_0x8aae('0x34')]=_0x6ddad['attributes'][_0x8aae('0x35')]?_0x6ddad[_0x8aae('0x34')]:_0x4bd978[_0x8aae('0x2d')];if(!_0x33c615['query']['hasOwnProperty'](_0x8aae('0x36'))){_0x6ddad[_0x8aae('0x19')]=qs[_0x8aae('0x19')](_0x33c615[_0x8aae('0x2f')]['limit']);_0x6ddad[_0x8aae('0x18')]=qs['offset'](_0x33c615[_0x8aae('0x2f')]['offset']);}_0x6ddad[_0x8aae('0x37')]=qs[_0x8aae('0x38')](_0x33c615['query'][_0x8aae('0x38')]);_0x6ddad[_0x8aae('0x39')]=qs['filters'](_[_0x8aae('0x3a')](_0x33c615[_0x8aae('0x2f')],_0x4bd978[_0x8aae('0x31')]),_0xec7dcf);if(_0x33c615[_0x8aae('0x2f')]['filter']){_0x6ddad['where']=_[_0x8aae('0x3b')](_0x6ddad[_0x8aae('0x39')],{'$or':_['map'](_0xec7dcf,function(_0x374faa){if(_0x374faa[_0x8aae('0x2b')]!=='VIRTUAL'){var _0x2b50cb={};_0x2b50cb[_0x374faa[_0x8aae('0x26')]]={'$like':'%'+_0x33c615[_0x8aae('0x2f')][_0x8aae('0x3c')]+'%'};return _0x2b50cb;}})});}_0x6ddad=_[_0x8aae('0x3b')]({},_0x6ddad,_0x33c615[_0x8aae('0x3d')]);var _0x270714={'where':_0x6ddad[_0x8aae('0x39')]};return db['Variable']['count'](_0x270714)[_0x8aae('0x20')](function(_0x2e3a8c){_0x38f7aa[_0x8aae('0x17')]=_0x2e3a8c;if(_0x33c615[_0x8aae('0x2f')]['includeAll']){_0x6ddad[_0x8aae('0x3e')]=[{'all':!![]}];}return db[_0x8aae('0x29')][_0x8aae('0x3f')](_0x6ddad);})[_0x8aae('0x20')](function(_0x360c71){_0x38f7aa[_0x8aae('0x40')]=_0x360c71;return _0x38f7aa;})[_0x8aae('0x20')](respondWithFilteredResult(_0x582180,_0x6ddad))[_0x8aae('0x41')](handleError(_0x582180,null));};exports[_0x8aae('0x42')]=function(_0x4cd94c,_0x1a1838){var _0x5161f7={'raw':!![],'where':{'id':_0x4cd94c[_0x8aae('0x43')]['id']}},_0x186461={};_0x186461['model']=_[_0x8aae('0x30')](db[_0x8aae('0x29')][_0x8aae('0x2a')]);_0x186461[_0x8aae('0x2f')]=_[_0x8aae('0x30')](_0x4cd94c[_0x8aae('0x2f')]);_0x186461[_0x8aae('0x31')]=_['intersection'](_0x186461[_0x8aae('0x2d')],_0x186461[_0x8aae('0x2f')]);_0x5161f7[_0x8aae('0x34')]=_[_0x8aae('0x32')](_0x186461[_0x8aae('0x2d')],qs['fields'](_0x4cd94c[_0x8aae('0x2f')][_0x8aae('0x33')]));_0x5161f7[_0x8aae('0x34')]=_0x5161f7['attributes']['length']?_0x5161f7[_0x8aae('0x34')]:_0x186461[_0x8aae('0x2d')];if(_0x4cd94c[_0x8aae('0x2f')][_0x8aae('0x44')]){_0x5161f7[_0x8aae('0x3e')]=[{'all':!![]}];}_0x5161f7=_[_0x8aae('0x3b')]({},_0x5161f7,_0x4cd94c['options']);return db['Variable']['find'](_0x5161f7)[_0x8aae('0x20')](handleEntityNotFound(_0x1a1838,null))[_0x8aae('0x20')](respondWithResult(_0x1a1838,null))['catch'](handleError(_0x1a1838,null));};exports['create']=function(_0x14a347,_0x281dce){return db[_0x8aae('0x29')]['create'](_0x14a347['body'],{})[_0x8aae('0x20')](function(_0x5e4655){var _0x1ec387=_0x14a347[_0x8aae('0x45')][_0x8aae('0x22')]({'plain':!![]});if(!_0x1ec387)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1ec387[_0x8aae('0x46')]===_0x8aae('0x45')){var _0x181213=_0x5e4655[_0x8aae('0x22')]({'plain':!![]});var _0x1dc950=_0x8aae('0x23');return db[_0x8aae('0x47')]['find']({'where':{'name':_0x1dc950,'userProfileId':_0x1ec387['userProfileId']},'raw':!![]})[_0x8aae('0x20')](function(_0x2d42a5){if(_0x2d42a5&&_0x2d42a5['autoAssociation']===0x0){return db[_0x8aae('0x24')][_0x8aae('0x48')]({'name':_0x181213[_0x8aae('0x26')],'resourceId':_0x181213['id'],'type':_0x2d42a5[_0x8aae('0x26')],'sectionId':_0x2d42a5['id']},{})[_0x8aae('0x20')](function(){return _0x5e4655;});}else{return _0x5e4655;}})[_0x8aae('0x41')](function(_0x320a31){logger[_0x8aae('0x49')](_0x8aae('0x4a'),_0x320a31);throw _0x320a31;});}return _0x5e4655;})[_0x8aae('0x20')](respondWithResult(_0x281dce,0xc9))['catch'](handleError(_0x281dce,null));};exports[_0x8aae('0x1f')]=function(_0x316252,_0x5701f6){if(_0x316252[_0x8aae('0x4b')]['id']){delete _0x316252['body']['id'];}return db[_0x8aae('0x29')][_0x8aae('0x4c')]({'where':{'id':_0x316252[_0x8aae('0x43')]['id']}})[_0x8aae('0x20')](handleEntityNotFound(_0x5701f6,null))[_0x8aae('0x20')](saveUpdates(_0x316252[_0x8aae('0x4b')],null))['then'](respondWithResult(_0x5701f6,null))[_0x8aae('0x41')](handleError(_0x5701f6,null));};exports[_0x8aae('0x21')]=function(_0x43df1,_0x2a6420){return db[_0x8aae('0x29')]['find']({'where':{'id':_0x43df1['params']['id']}})[_0x8aae('0x20')](handleEntityNotFound(_0x2a6420,null))[_0x8aae('0x20')](removeEntity(_0x2a6420,null))[_0x8aae('0x41')](handleError(_0x2a6420,null));};