Built motion from commit a61a4a20.|2.5.46
[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 _0x4bf7=['set','apply','reject','update','then','get','Variables','destroy','error','stack','name','send','map','Variable','rawAttributes','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','params','keys','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count'];(function(_0x18c9a2,_0x342c2a){var _0x58e54a=function(_0x58ddd1){while(--_0x58ddd1){_0x18c9a2['push'](_0x18c9a2['shift']());}};_0x58e54a(++_0x342c2a);}(_0x4bf7,0x114));var _0x74bf=function(_0x4dead3,_0x59c05f){_0x4dead3=_0x4dead3-0x0;var _0x170b3d=_0x4bf7[_0x4dead3];return _0x170b3d;};'use strict';var emlformat=require(_0x74bf('0x0'));var rimraf=require(_0x74bf('0x1'));var zipdir=require(_0x74bf('0x2'));var jsonpatch=require(_0x74bf('0x3'));var rp=require(_0x74bf('0x4'));var moment=require(_0x74bf('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x74bf('0x6'));var util=require(_0x74bf('0x7'));var path=require(_0x74bf('0x8'));var sox=require(_0x74bf('0x9'));var csv=require(_0x74bf('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x74bf('0xb'));var squel=require(_0x74bf('0xc'));var crypto=require('crypto');var jsforce=require(_0x74bf('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x74bf('0xe'));var Redis=require(_0x74bf('0xf'));var authService=require(_0x74bf('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x74bf('0x11'));var hardwareService=require(_0x74bf('0x12'));var logger=require(_0x74bf('0x13'))('api');var utils=require(_0x74bf('0x14'));var config=require(_0x74bf('0x15'));var licenseUtil=require(_0x74bf('0x16'));var db=require(_0x74bf('0x17'))['db'];function respondWithStatusCode(_0x3fdd69,_0x461a97){_0x461a97=_0x461a97||0xcc;return function(_0x5346a3){if(_0x5346a3){return _0x3fdd69[_0x74bf('0x18')](_0x461a97);}return _0x3fdd69[_0x74bf('0x19')](_0x461a97)[_0x74bf('0x1a')]();};}function respondWithResult(_0x252118,_0x17d4e8){_0x17d4e8=_0x17d4e8||0xc8;return function(_0x45b342){if(_0x45b342){return _0x252118[_0x74bf('0x19')](_0x17d4e8)[_0x74bf('0x1b')](_0x45b342);}};}function respondWithFilteredResult(_0x33c356,_0x29afd1){return function(_0xce6f){if(_0xce6f){var _0x1d92c9=typeof _0x29afd1[_0x74bf('0x1c')]===_0x74bf('0x1d')&&typeof _0x29afd1[_0x74bf('0x1e')]===_0x74bf('0x1d');var _0x53bdc2=_0xce6f[_0x74bf('0x1f')];var _0x1566de=_0x1d92c9?0x0:_0x29afd1[_0x74bf('0x1c')];var _0x179a42=_0x1d92c9?_0xce6f[_0x74bf('0x1f')]:_0x29afd1[_0x74bf('0x1c')]+_0x29afd1[_0x74bf('0x1e')];var _0x1b1640;if(_0x179a42>=_0x53bdc2){_0x179a42=_0x53bdc2;_0x1b1640=0xc8;}else{_0x1b1640=0xce;}_0x33c356[_0x74bf('0x19')](_0x1b1640);return _0x33c356[_0x74bf('0x20')]('Content-Range',_0x1566de+'-'+_0x179a42+'/'+_0x53bdc2)[_0x74bf('0x1b')](_0xce6f);}return null;};}function patchUpdates(_0x167f7c){return function(_0xd3d16){try{jsonpatch[_0x74bf('0x21')](_0xd3d16,_0x167f7c,!![]);}catch(_0x52722a){return BPromise[_0x74bf('0x22')](_0x52722a);}return _0xd3d16['save']();};}function saveUpdates(_0x33622a,_0x5cc02a){return function(_0x87b251){if(_0x87b251){return _0x87b251[_0x74bf('0x23')](_0x33622a)['then'](function(_0x527f8b){return _0x527f8b;});}return null;};}function removeEntity(_0x1e238c,_0x491da4){return function(_0x5c1727){if(_0x5c1727){return _0x5c1727['destroy']()[_0x74bf('0x24')](function(){var _0x2e9e45=_0x5c1727[_0x74bf('0x25')]({'plain':!![]});var _0x13d325=_0x74bf('0x26');return db['UserProfileResource'][_0x74bf('0x27')]({'where':{'type':_0x13d325,'resourceId':_0x2e9e45['id']}})['then'](function(){return _0x5c1727;});})['then'](function(){_0x1e238c[_0x74bf('0x19')](0xcc)[_0x74bf('0x1a')]();});}};}function handleEntityNotFound(_0x382893,_0x423244){return function(_0x40322c){if(!_0x40322c){_0x382893[_0x74bf('0x18')](0x194);}return _0x40322c;};}function handleError(_0x5e7fe8,_0x160934){_0x160934=_0x160934||0x1f4;return function(_0x12e9cc){logger[_0x74bf('0x28')](_0x12e9cc[_0x74bf('0x29')]);if(_0x12e9cc[_0x74bf('0x2a')]){delete _0x12e9cc[_0x74bf('0x2a')];}_0x5e7fe8['status'](_0x160934)[_0x74bf('0x2b')](_0x12e9cc);};}exports['index']=function(_0x323ef9,_0x44a067){var _0x1c94e9={},_0x226e72={},_0x362108={'count':0x0,'rows':[]};var _0x455045=_[_0x74bf('0x2c')](db[_0x74bf('0x2d')][_0x74bf('0x2e')],function(_0xb5e68b){return{'name':_0xb5e68b['fieldName'],'type':_0xb5e68b[_0x74bf('0x2f')]['key']};});_0x226e72[_0x74bf('0x30')]=_[_0x74bf('0x2c')](_0x455045,_0x74bf('0x2a'));_0x226e72[_0x74bf('0x31')]=_['keys'](_0x323ef9[_0x74bf('0x31')]);_0x226e72[_0x74bf('0x32')]=_[_0x74bf('0x33')](_0x226e72['model'],_0x226e72[_0x74bf('0x31')]);_0x1c94e9[_0x74bf('0x34')]=_[_0x74bf('0x33')](_0x226e72['model'],qs['fields'](_0x323ef9['query'][_0x74bf('0x35')]));_0x1c94e9[_0x74bf('0x34')]=_0x1c94e9[_0x74bf('0x34')][_0x74bf('0x36')]?_0x1c94e9['attributes']:_0x226e72['model'];if(!_0x323ef9['query'][_0x74bf('0x37')]('nolimit')){_0x1c94e9[_0x74bf('0x1e')]=qs['limit'](_0x323ef9[_0x74bf('0x31')]['limit']);_0x1c94e9[_0x74bf('0x1c')]=qs[_0x74bf('0x1c')](_0x323ef9['query'][_0x74bf('0x1c')]);}_0x1c94e9[_0x74bf('0x38')]=qs[_0x74bf('0x39')](_0x323ef9[_0x74bf('0x31')]['sort']);_0x1c94e9[_0x74bf('0x3a')]=qs[_0x74bf('0x32')](_[_0x74bf('0x3b')](_0x323ef9[_0x74bf('0x31')],_0x226e72[_0x74bf('0x32')]),_0x455045);if(_0x323ef9['query'][_0x74bf('0x3c')]){_0x1c94e9[_0x74bf('0x3a')]=_['merge'](_0x1c94e9['where'],{'$or':_['map'](_0x455045,function(_0x20422b){if(_0x20422b[_0x74bf('0x2f')]!==_0x74bf('0x3d')){var _0x2e8168={};_0x2e8168[_0x20422b[_0x74bf('0x2a')]]={'$like':'%'+_0x323ef9['query'][_0x74bf('0x3c')]+'%'};return _0x2e8168;}})});}_0x1c94e9=_['merge']({},_0x1c94e9,_0x323ef9[_0x74bf('0x3e')]);var _0x55a3da={'where':_0x1c94e9['where']};return db[_0x74bf('0x2d')][_0x74bf('0x1f')](_0x55a3da)['then'](function(_0x136b28){_0x362108[_0x74bf('0x1f')]=_0x136b28;if(_0x323ef9[_0x74bf('0x31')][_0x74bf('0x3f')]){_0x1c94e9[_0x74bf('0x40')]=[{'all':!![]}];}return db[_0x74bf('0x2d')][_0x74bf('0x41')](_0x1c94e9);})[_0x74bf('0x24')](function(_0x487e20){_0x362108[_0x74bf('0x42')]=_0x487e20;return _0x362108;})[_0x74bf('0x24')](respondWithFilteredResult(_0x44a067,_0x1c94e9))['catch'](handleError(_0x44a067,null));};exports['show']=function(_0x536b7e,_0x1b2ea9){var _0x5e9aa6={'raw':!![],'where':{'id':_0x536b7e[_0x74bf('0x43')]['id']}},_0x2492ba={};_0x2492ba[_0x74bf('0x30')]=_[_0x74bf('0x44')](db['Variable']['rawAttributes']);_0x2492ba['query']=_[_0x74bf('0x44')](_0x536b7e[_0x74bf('0x31')]);_0x2492ba[_0x74bf('0x32')]=_[_0x74bf('0x33')](_0x2492ba[_0x74bf('0x30')],_0x2492ba[_0x74bf('0x31')]);_0x5e9aa6[_0x74bf('0x34')]=_[_0x74bf('0x33')](_0x2492ba['model'],qs[_0x74bf('0x35')](_0x536b7e['query'][_0x74bf('0x35')]));_0x5e9aa6[_0x74bf('0x34')]=_0x5e9aa6[_0x74bf('0x34')][_0x74bf('0x36')]?_0x5e9aa6['attributes']:_0x2492ba[_0x74bf('0x30')];if(_0x536b7e[_0x74bf('0x31')][_0x74bf('0x3f')]){_0x5e9aa6[_0x74bf('0x40')]=[{'all':!![]}];}_0x5e9aa6=_['merge']({},_0x5e9aa6,_0x536b7e[_0x74bf('0x3e')]);return db[_0x74bf('0x2d')][_0x74bf('0x45')](_0x5e9aa6)[_0x74bf('0x24')](handleEntityNotFound(_0x1b2ea9,null))[_0x74bf('0x24')](respondWithResult(_0x1b2ea9,null))[_0x74bf('0x46')](handleError(_0x1b2ea9,null));};exports[_0x74bf('0x47')]=function(_0x4b58b2,_0x3664db){return db['Variable']['create'](_0x4b58b2[_0x74bf('0x48')],{})[_0x74bf('0x24')](function(_0xb50f7d){var _0x1ded0e=_0x4b58b2[_0x74bf('0x49')][_0x74bf('0x25')]({'plain':!![]});if(!_0x1ded0e)throw new Error(_0x74bf('0x4a'));if(_0x1ded0e[_0x74bf('0x4b')]===_0x74bf('0x49')){var _0x343788=_0xb50f7d[_0x74bf('0x25')]({'plain':!![]});var _0x29dc16=_0x74bf('0x26');return db['UserProfileSection']['find']({'where':{'name':_0x29dc16,'userProfileId':_0x1ded0e['userProfileId']},'raw':!![]})[_0x74bf('0x24')](function(_0xdbe78e){if(_0xdbe78e&&_0xdbe78e[_0x74bf('0x4c')]===0x0){return db['UserProfileResource'][_0x74bf('0x47')]({'name':_0x343788[_0x74bf('0x2a')],'resourceId':_0x343788['id'],'type':_0xdbe78e[_0x74bf('0x2a')],'sectionId':_0xdbe78e['id']},{})[_0x74bf('0x24')](function(){return _0xb50f7d;});}else{return _0xb50f7d;}})[_0x74bf('0x46')](function(_0x1cea29){logger[_0x74bf('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1cea29);throw _0x1cea29;});}return _0xb50f7d;})[_0x74bf('0x24')](respondWithResult(_0x3664db,0xc9))[_0x74bf('0x46')](handleError(_0x3664db,null));};exports[_0x74bf('0x23')]=function(_0x119dd6,_0x3acf08){if(_0x119dd6[_0x74bf('0x48')]['id']){delete _0x119dd6[_0x74bf('0x48')]['id'];}return db[_0x74bf('0x2d')][_0x74bf('0x45')]({'where':{'id':_0x119dd6['params']['id']}})['then'](handleEntityNotFound(_0x3acf08,null))[_0x74bf('0x24')](saveUpdates(_0x119dd6[_0x74bf('0x48')],null))[_0x74bf('0x24')](respondWithResult(_0x3acf08,null))[_0x74bf('0x46')](handleError(_0x3acf08,null));};exports[_0x74bf('0x27')]=function(_0x5978f1,_0x817ef5){return db[_0x74bf('0x2d')][_0x74bf('0x45')]({'where':{'id':_0x5978f1['params']['id']}})[_0x74bf('0x24')](handleEntityNotFound(_0x817ef5,null))[_0x74bf('0x24')](removeEntity(_0x817ef5,null))[_0x74bf('0x46')](handleError(_0x817ef5,null));};