Built motion from commit ce9a7520.|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 _0x7f3d=['keys','intersection','attributes','fields','hasOwnProperty','sort','filters','pick','filter','where','type','VIRTUAL','merge','Variable','includeAll','include','show','length','options','find','catch','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Variables','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','eml-format','zip-dir','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','Content-Range','apply','reject','save','then','destroy','stack','name','send','index','map','rawAttributes','fieldName','key','model','query'];(function(_0x31e29a,_0x349c9b){var _0x32d892=function(_0x41cc86){while(--_0x41cc86){_0x31e29a['push'](_0x31e29a['shift']());}};_0x32d892(++_0x349c9b);}(_0x7f3d,0x6b));var _0xd7f3=function(_0x2e913b,_0x4b7071){_0x2e913b=_0x2e913b-0x0;var _0x173899=_0x7f3d[_0x2e913b];return _0x173899;};'use strict';var emlformat=require(_0xd7f3('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd7f3('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xd7f3('0x2'));var path=require(_0xd7f3('0x3'));var sox=require('sox');var csv=require(_0xd7f3('0x4'));var ejs=require(_0xd7f3('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd7f3('0x6'));var squel=require(_0xd7f3('0x7'));var crypto=require(_0xd7f3('0x8'));var jsforce=require(_0xd7f3('0x9'));var deskjs=require(_0xd7f3('0xa'));var toCsv=require(_0xd7f3('0x4'));var querystring=require('querystring');var Papa=require(_0xd7f3('0xb'));var Redis=require('ioredis');var authService=require(_0xd7f3('0xc'));var qs=require('../../components/parsers/qs');var as=require(_0xd7f3('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd7f3('0xe'))(_0xd7f3('0xf'));var utils=require(_0xd7f3('0x10'));var config=require(_0xd7f3('0x11'));var licenseUtil=require(_0xd7f3('0x12'));var db=require(_0xd7f3('0x13'))['db'];function respondWithStatusCode(_0x1eb274,_0x50ff73){_0x50ff73=_0x50ff73||0xcc;return function(_0x5431fc){if(_0x5431fc){return _0x1eb274[_0xd7f3('0x14')](_0x50ff73);}return _0x1eb274[_0xd7f3('0x15')](_0x50ff73)[_0xd7f3('0x16')]();};}function respondWithResult(_0x318761,_0x204eb){_0x204eb=_0x204eb||0xc8;return function(_0x45c0ef){if(_0x45c0ef){return _0x318761[_0xd7f3('0x15')](_0x204eb)['json'](_0x45c0ef);}};}function respondWithFilteredResult(_0xee58c,_0x5d5177){return function(_0x1f7c2b){if(_0x1f7c2b){var _0x50aada=typeof _0x5d5177[_0xd7f3('0x17')]===_0xd7f3('0x18')&&typeof _0x5d5177['limit']===_0xd7f3('0x18');var _0x3c1000=_0x1f7c2b[_0xd7f3('0x19')];var _0x2796b1=_0x50aada?0x0:_0x5d5177[_0xd7f3('0x17')];var _0x43b377=_0x50aada?_0x1f7c2b[_0xd7f3('0x19')]:_0x5d5177[_0xd7f3('0x17')]+_0x5d5177[_0xd7f3('0x1a')];var _0xf1a76f;if(_0x43b377>=_0x3c1000){_0x43b377=_0x3c1000;_0xf1a76f=0xc8;}else{_0xf1a76f=0xce;}_0xee58c[_0xd7f3('0x15')](_0xf1a76f);return _0xee58c['set'](_0xd7f3('0x1b'),_0x2796b1+'-'+_0x43b377+'/'+_0x3c1000)['json'](_0x1f7c2b);}return null;};}function patchUpdates(_0x56255e){return function(_0x59d105){try{jsonpatch[_0xd7f3('0x1c')](_0x59d105,_0x56255e,!![]);}catch(_0x4b7d10){return BPromise[_0xd7f3('0x1d')](_0x4b7d10);}return _0x59d105[_0xd7f3('0x1e')]();};}function saveUpdates(_0x4fed13,_0x2381cd){return function(_0x57c24d){if(_0x57c24d){return _0x57c24d['update'](_0x4fed13)[_0xd7f3('0x1f')](function(_0x27ea2a){return _0x27ea2a;});}return null;};}function removeEntity(_0x528549,_0x553324){return function(_0x35747d){if(_0x35747d){return _0x35747d[_0xd7f3('0x20')]()[_0xd7f3('0x1f')](function(){var _0x2647d4=_0x35747d['get']({'plain':!![]});var _0x32c3df='Variables';return db['UserProfileResource'][_0xd7f3('0x20')]({'where':{'type':_0x32c3df,'resourceId':_0x2647d4['id']}})[_0xd7f3('0x1f')](function(){return _0x35747d;});})[_0xd7f3('0x1f')](function(){_0x528549[_0xd7f3('0x15')](0xcc)[_0xd7f3('0x16')]();});}};}function handleEntityNotFound(_0x1b9990,_0x27747b){return function(_0x1c17ad){if(!_0x1c17ad){_0x1b9990[_0xd7f3('0x14')](0x194);}return _0x1c17ad;};}function handleError(_0x14c1d0,_0x4fb15f){_0x4fb15f=_0x4fb15f||0x1f4;return function(_0x2b8a98){logger['error'](_0x2b8a98[_0xd7f3('0x21')]);if(_0x2b8a98[_0xd7f3('0x22')]){delete _0x2b8a98[_0xd7f3('0x22')];}_0x14c1d0['status'](_0x4fb15f)[_0xd7f3('0x23')](_0x2b8a98);};}exports[_0xd7f3('0x24')]=function(_0x3c916b,_0x2528ae){var _0x2887d7={},_0x5a5046={},_0x1feaed={'count':0x0,'rows':[]};var _0x15ab97=_[_0xd7f3('0x25')](db['Variable'][_0xd7f3('0x26')],function(_0x1ba1d9){return{'name':_0x1ba1d9[_0xd7f3('0x27')],'type':_0x1ba1d9['type'][_0xd7f3('0x28')]};});_0x5a5046[_0xd7f3('0x29')]=_[_0xd7f3('0x25')](_0x15ab97,'name');_0x5a5046[_0xd7f3('0x2a')]=_[_0xd7f3('0x2b')](_0x3c916b[_0xd7f3('0x2a')]);_0x5a5046['filters']=_[_0xd7f3('0x2c')](_0x5a5046[_0xd7f3('0x29')],_0x5a5046['query']);_0x2887d7[_0xd7f3('0x2d')]=_['intersection'](_0x5a5046[_0xd7f3('0x29')],qs[_0xd7f3('0x2e')](_0x3c916b['query'][_0xd7f3('0x2e')]));_0x2887d7[_0xd7f3('0x2d')]=_0x2887d7[_0xd7f3('0x2d')]['length']?_0x2887d7[_0xd7f3('0x2d')]:_0x5a5046['model'];if(!_0x3c916b[_0xd7f3('0x2a')][_0xd7f3('0x2f')]('nolimit')){_0x2887d7[_0xd7f3('0x1a')]=qs['limit'](_0x3c916b['query'][_0xd7f3('0x1a')]);_0x2887d7[_0xd7f3('0x17')]=qs[_0xd7f3('0x17')](_0x3c916b['query'][_0xd7f3('0x17')]);}_0x2887d7['order']=qs[_0xd7f3('0x30')](_0x3c916b['query']['sort']);_0x2887d7['where']=qs[_0xd7f3('0x31')](_[_0xd7f3('0x32')](_0x3c916b[_0xd7f3('0x2a')],_0x5a5046[_0xd7f3('0x31')]),_0x15ab97);if(_0x3c916b[_0xd7f3('0x2a')][_0xd7f3('0x33')]){_0x2887d7[_0xd7f3('0x34')]=_['merge'](_0x2887d7[_0xd7f3('0x34')],{'$or':_[_0xd7f3('0x25')](_0x15ab97,function(_0x5e77ca){if(_0x5e77ca[_0xd7f3('0x35')]!==_0xd7f3('0x36')){var _0x6cbd23={};_0x6cbd23[_0x5e77ca[_0xd7f3('0x22')]]={'$like':'%'+_0x3c916b[_0xd7f3('0x2a')][_0xd7f3('0x33')]+'%'};return _0x6cbd23;}})});}_0x2887d7=_[_0xd7f3('0x37')]({},_0x2887d7,_0x3c916b['options']);var _0x1d6034={'where':_0x2887d7['where']};return db[_0xd7f3('0x38')][_0xd7f3('0x19')](_0x1d6034)[_0xd7f3('0x1f')](function(_0x360c88){_0x1feaed[_0xd7f3('0x19')]=_0x360c88;if(_0x3c916b['query'][_0xd7f3('0x39')]){_0x2887d7[_0xd7f3('0x3a')]=[{'all':!![]}];}return db[_0xd7f3('0x38')]['findAll'](_0x2887d7);})[_0xd7f3('0x1f')](function(_0x3c657a){_0x1feaed['rows']=_0x3c657a;return _0x1feaed;})[_0xd7f3('0x1f')](respondWithFilteredResult(_0x2528ae,_0x2887d7))['catch'](handleError(_0x2528ae,null));};exports[_0xd7f3('0x3b')]=function(_0x53a95a,_0x4497ac){var _0x280d37={'raw':!![],'where':{'id':_0x53a95a['params']['id']}},_0x488f60={};_0x488f60[_0xd7f3('0x29')]=_[_0xd7f3('0x2b')](db[_0xd7f3('0x38')][_0xd7f3('0x26')]);_0x488f60[_0xd7f3('0x2a')]=_[_0xd7f3('0x2b')](_0x53a95a[_0xd7f3('0x2a')]);_0x488f60[_0xd7f3('0x31')]=_[_0xd7f3('0x2c')](_0x488f60[_0xd7f3('0x29')],_0x488f60[_0xd7f3('0x2a')]);_0x280d37[_0xd7f3('0x2d')]=_[_0xd7f3('0x2c')](_0x488f60[_0xd7f3('0x29')],qs[_0xd7f3('0x2e')](_0x53a95a['query']['fields']));_0x280d37['attributes']=_0x280d37[_0xd7f3('0x2d')][_0xd7f3('0x3c')]?_0x280d37['attributes']:_0x488f60[_0xd7f3('0x29')];if(_0x53a95a['query'][_0xd7f3('0x39')]){_0x280d37[_0xd7f3('0x3a')]=[{'all':!![]}];}_0x280d37=_[_0xd7f3('0x37')]({},_0x280d37,_0x53a95a[_0xd7f3('0x3d')]);return db[_0xd7f3('0x38')][_0xd7f3('0x3e')](_0x280d37)['then'](handleEntityNotFound(_0x4497ac,null))[_0xd7f3('0x1f')](respondWithResult(_0x4497ac,null))[_0xd7f3('0x3f')](handleError(_0x4497ac,null));};exports[_0xd7f3('0x40')]=function(_0x2f4aee,_0x22cdd6){return db[_0xd7f3('0x38')]['create'](_0x2f4aee[_0xd7f3('0x41')],{})[_0xd7f3('0x1f')](function(_0x5a2c12){var _0x5195db=_0x2f4aee['user'][_0xd7f3('0x42')]({'plain':!![]});if(!_0x5195db)throw new Error(_0xd7f3('0x43'));if(_0x5195db['role']===_0xd7f3('0x44')){var _0x481bb8=_0x5a2c12[_0xd7f3('0x42')]({'plain':!![]});var _0x42032c=_0xd7f3('0x45');return db['UserProfileSection'][_0xd7f3('0x3e')]({'where':{'name':_0x42032c,'userProfileId':_0x5195db[_0xd7f3('0x46')]},'raw':!![]})[_0xd7f3('0x1f')](function(_0x395a0a){if(_0x395a0a&&_0x395a0a['autoAssociation']===0x0){return db['UserProfileResource'][_0xd7f3('0x40')]({'name':_0x481bb8[_0xd7f3('0x22')],'resourceId':_0x481bb8['id'],'type':_0x395a0a['name'],'sectionId':_0x395a0a['id']},{})['then'](function(){return _0x5a2c12;});}else{return _0x5a2c12;}})[_0xd7f3('0x3f')](function(_0x13b962){logger[_0xd7f3('0x47')](_0xd7f3('0x48'),_0x13b962);throw _0x13b962;});}return _0x5a2c12;})[_0xd7f3('0x1f')](respondWithResult(_0x22cdd6,0xc9))[_0xd7f3('0x3f')](handleError(_0x22cdd6,null));};exports[_0xd7f3('0x49')]=function(_0x178819,_0x37a061){if(_0x178819[_0xd7f3('0x41')]['id']){delete _0x178819[_0xd7f3('0x41')]['id'];}return db[_0xd7f3('0x38')][_0xd7f3('0x3e')]({'where':{'id':_0x178819[_0xd7f3('0x4a')]['id']}})[_0xd7f3('0x1f')](handleEntityNotFound(_0x37a061,null))[_0xd7f3('0x1f')](saveUpdates(_0x178819[_0xd7f3('0x41')],null))['then'](respondWithResult(_0x37a061,null))[_0xd7f3('0x3f')](handleError(_0x37a061,null));};exports[_0xd7f3('0x20')]=function(_0x16bb84,_0x20ae6b){return db[_0xd7f3('0x38')][_0xd7f3('0x3e')]({'where':{'id':_0x16bb84[_0xd7f3('0x4a')]['id']}})[_0xd7f3('0x1f')](handleEntityNotFound(_0x20ae6b,null))[_0xd7f3('0x1f')](removeEntity(_0x20ae6b,null))[_0xd7f3('0x3f')](handleError(_0x20ae6b,null));};