6db8f908891eab4d6aa47ea44ddce8697b047b2e
[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 _0x3782=['hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','VIRTUAL','count','include','findAll','rows','catch','params','keys','options','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','moment','mustache','path','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','status','end','offset','set','Content-Range','json','apply','save','update','then','Variables','destroy','sendStatus','error','stack','name','send','index','map','Variable','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length'];(function(_0x4c3ffe,_0x457374){var _0x28d3eb=function(_0x3ae2a3){while(--_0x3ae2a3){_0x4c3ffe['push'](_0x4c3ffe['shift']());}};_0x28d3eb(++_0x457374);}(_0x3782,0x1f0));var _0x2378=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x3782[_0x122ef9];return _0x42fba0;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x2378('0x0'));var rimraf=require(_0x2378('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2378('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x2378('0x3'));var util=require('util');var path=require(_0x2378('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x2378('0x5'));var fs=require('fs');var _=require('lodash');var squel=require(_0x2378('0x6'));var crypto=require(_0x2378('0x7'));var jsforce=require(_0x2378('0x8'));var deskjs=require(_0x2378('0x9'));var toCsv=require(_0x2378('0xa'));var querystring=require(_0x2378('0xb'));var Papa=require(_0x2378('0xc'));var Redis=require(_0x2378('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2378('0xe'));var logger=require(_0x2378('0xf'))(_0x2378('0x10'));var utils=require('../../config/utils');var config=require(_0x2378('0x11'));var licenseUtil=require(_0x2378('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x50eefc,_0x55b707){_0x55b707=_0x55b707||0xcc;return function(_0x7e912f){if(_0x7e912f){return _0x50eefc['sendStatus'](_0x55b707);}return _0x50eefc[_0x2378('0x13')](_0x55b707)[_0x2378('0x14')]();};}function respondWithResult(_0x16eacb,_0x3ffe0b){_0x3ffe0b=_0x3ffe0b||0xc8;return function(_0x11ce5c){if(_0x11ce5c){return _0x16eacb[_0x2378('0x13')](_0x3ffe0b)['json'](_0x11ce5c);}};}function respondWithFilteredResult(_0x2d4987,_0x2cc8c7){return function(_0x1e9470){if(_0x1e9470){var _0x308644=_0x1e9470['count'],_0x558ade=_0x2cc8c7['offset'],_0x29bbad=_0x2cc8c7[_0x2378('0x15')]+_0x2cc8c7['limit'],_0x59c414;if(_0x29bbad>=_0x308644){_0x29bbad=_0x308644;_0x59c414=0xc8;}else{_0x59c414=0xce;}_0x2d4987[_0x2378('0x13')](_0x59c414);return _0x2d4987[_0x2378('0x16')](_0x2378('0x17'),_0x558ade+'-'+_0x29bbad+'/'+_0x308644)[_0x2378('0x18')](_0x1e9470);}return null;};}function patchUpdates(_0x43949b){return function(_0x5e50ca){try{jsonpatch[_0x2378('0x19')](_0x5e50ca,_0x43949b,!![]);}catch(_0x4e0f23){return BPromise['reject'](_0x4e0f23);}return _0x5e50ca[_0x2378('0x1a')]();};}function saveUpdates(_0x338b3e,_0x3dd1c4){return function(_0x11d452){if(_0x11d452){return _0x11d452[_0x2378('0x1b')](_0x338b3e)['then'](function(_0x473c35){return _0x473c35;});}return null;};}function removeEntity(_0x18353c,_0x424660){return function(_0x4ac70a){if(_0x4ac70a){return _0x4ac70a['destroy']()[_0x2378('0x1c')](function(){var _0x51b118=_0x4ac70a['get']({'plain':!![]});var _0x3280a4=_0x2378('0x1d');return db['UserProfileResource'][_0x2378('0x1e')]({'where':{'type':_0x3280a4,'resourceId':_0x51b118['id']}})[_0x2378('0x1c')](function(){return _0x4ac70a;});})[_0x2378('0x1c')](function(){_0x18353c['status'](0xcc)[_0x2378('0x14')]();});}};}function handleEntityNotFound(_0x39a55c,_0x17c971){return function(_0x3dfc34){if(!_0x3dfc34){_0x39a55c[_0x2378('0x1f')](0x194);}return _0x3dfc34;};}function handleError(_0x15f4db,_0x27831a){_0x27831a=_0x27831a||0x1f4;return function(_0x28a7dc){logger[_0x2378('0x20')](_0x28a7dc[_0x2378('0x21')]);if(_0x28a7dc[_0x2378('0x22')]){delete _0x28a7dc[_0x2378('0x22')];}_0x15f4db[_0x2378('0x13')](_0x27831a)[_0x2378('0x23')](_0x28a7dc);};}exports[_0x2378('0x24')]=function(_0x586f1d,_0x506d51){var _0xd7c293={},_0x338e25={},_0x5a9dd9={'count':0x0,'rows':[]};var _0x5251c9=_[_0x2378('0x25')](db[_0x2378('0x26')][_0x2378('0x27')],function(_0x178bfa){return{'name':_0x178bfa[_0x2378('0x28')],'type':_0x178bfa[_0x2378('0x29')][_0x2378('0x2a')]};});_0x338e25[_0x2378('0x2b')]=_[_0x2378('0x25')](_0x5251c9,_0x2378('0x22'));_0x338e25['query']=_['keys'](_0x586f1d[_0x2378('0x2c')]);_0x338e25[_0x2378('0x2d')]=_[_0x2378('0x2e')](_0x338e25[_0x2378('0x2b')],_0x338e25[_0x2378('0x2c')]);_0xd7c293[_0x2378('0x2f')]=_[_0x2378('0x2e')](_0x338e25[_0x2378('0x2b')],qs[_0x2378('0x30')](_0x586f1d[_0x2378('0x2c')][_0x2378('0x30')]));_0xd7c293[_0x2378('0x2f')]=_0xd7c293[_0x2378('0x2f')][_0x2378('0x31')]?_0xd7c293[_0x2378('0x2f')]:_0x338e25[_0x2378('0x2b')];if(!_0x586f1d['query'][_0x2378('0x32')](_0x2378('0x33'))){_0xd7c293[_0x2378('0x34')]=qs[_0x2378('0x34')](_0x586f1d[_0x2378('0x2c')]['limit']);_0xd7c293[_0x2378('0x15')]=qs['offset'](_0x586f1d[_0x2378('0x2c')][_0x2378('0x15')]);}_0xd7c293[_0x2378('0x35')]=qs[_0x2378('0x36')](_0x586f1d[_0x2378('0x2c')][_0x2378('0x36')]);_0xd7c293['where']=qs[_0x2378('0x2d')](_[_0x2378('0x37')](_0x586f1d['query'],_0x338e25['filters']),_0x5251c9);if(_0x586f1d[_0x2378('0x2c')][_0x2378('0x38')]){_0xd7c293[_0x2378('0x39')]=_[_0x2378('0x3a')](_0xd7c293[_0x2378('0x39')],{'$or':_[_0x2378('0x25')](_0x5251c9,function(_0x43c67f){if(_0x43c67f[_0x2378('0x29')]!==_0x2378('0x3b')){var _0x25bd3a={};_0x25bd3a[_0x43c67f[_0x2378('0x22')]]={'$like':'%'+_0x586f1d[_0x2378('0x2c')][_0x2378('0x38')]+'%'};return _0x25bd3a;}})});}_0xd7c293=_[_0x2378('0x3a')]({},_0xd7c293,_0x586f1d['options']);var _0x1b0ea5={'where':_0xd7c293[_0x2378('0x39')]};return db[_0x2378('0x26')][_0x2378('0x3c')](_0x1b0ea5)['then'](function(_0x261294){_0x5a9dd9['count']=_0x261294;if(_0x586f1d[_0x2378('0x2c')]['includeAll']){_0xd7c293[_0x2378('0x3d')]=[{'all':!![]}];}return db[_0x2378('0x26')][_0x2378('0x3e')](_0xd7c293);})[_0x2378('0x1c')](function(_0x2d6835){_0x5a9dd9[_0x2378('0x3f')]=_0x2d6835;return _0x5a9dd9;})[_0x2378('0x1c')](respondWithFilteredResult(_0x506d51,_0xd7c293))[_0x2378('0x40')](handleError(_0x506d51,null));};exports['show']=function(_0x4114e6,_0x574827){var _0x13cc38={'raw':!![],'where':{'id':_0x4114e6[_0x2378('0x41')]['id']}},_0x477e17={};_0x477e17[_0x2378('0x2b')]=_[_0x2378('0x42')](db[_0x2378('0x26')][_0x2378('0x27')]);_0x477e17[_0x2378('0x2c')]=_[_0x2378('0x42')](_0x4114e6[_0x2378('0x2c')]);_0x477e17[_0x2378('0x2d')]=_[_0x2378('0x2e')](_0x477e17[_0x2378('0x2b')],_0x477e17[_0x2378('0x2c')]);_0x13cc38[_0x2378('0x2f')]=_[_0x2378('0x2e')](_0x477e17[_0x2378('0x2b')],qs['fields'](_0x4114e6[_0x2378('0x2c')][_0x2378('0x30')]));_0x13cc38['attributes']=_0x13cc38[_0x2378('0x2f')]['length']?_0x13cc38['attributes']:_0x477e17[_0x2378('0x2b')];if(_0x4114e6[_0x2378('0x2c')]['includeAll']){_0x13cc38[_0x2378('0x3d')]=[{'all':!![]}];}_0x13cc38=_[_0x2378('0x3a')]({},_0x13cc38,_0x4114e6[_0x2378('0x43')]);return db['Variable'][_0x2378('0x44')](_0x13cc38)[_0x2378('0x1c')](handleEntityNotFound(_0x574827,null))['then'](respondWithResult(_0x574827,null))[_0x2378('0x40')](handleError(_0x574827,null));};exports['create']=function(_0x3122f9,_0x57f463){return db[_0x2378('0x26')][_0x2378('0x45')](_0x3122f9[_0x2378('0x46')],{})[_0x2378('0x1c')](function(_0x42df24){var _0x2a51e3=_0x3122f9[_0x2378('0x47')]['get']({'plain':!![]});if(!_0x2a51e3)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2a51e3[_0x2378('0x48')]==='user'){var _0xff5697=_0x42df24['get']({'plain':!![]});var _0x5774bf=_0x2378('0x1d');return db[_0x2378('0x49')][_0x2378('0x44')]({'where':{'name':_0x5774bf,'userProfileId':_0x2a51e3[_0x2378('0x4a')]},'raw':!![]})['then'](function(_0x25ee76){if(_0x25ee76&&_0x25ee76[_0x2378('0x4b')]===0x0){return db[_0x2378('0x4c')]['create']({'name':_0xff5697[_0x2378('0x22')],'resourceId':_0xff5697['id'],'type':_0x25ee76[_0x2378('0x22')],'sectionId':_0x25ee76['id']},{})[_0x2378('0x1c')](function(){return _0x42df24;});}else{return _0x42df24;}})[_0x2378('0x40')](function(_0x581ab9){logger[_0x2378('0x20')](_0x2378('0x4d'),_0x581ab9);throw _0x581ab9;});}return _0x42df24;})[_0x2378('0x1c')](respondWithResult(_0x57f463,0xc9))['catch'](handleError(_0x57f463,null));};exports[_0x2378('0x1b')]=function(_0x134e1d,_0x1b512f){if(_0x134e1d[_0x2378('0x46')]['id']){delete _0x134e1d[_0x2378('0x46')]['id'];}return db[_0x2378('0x26')][_0x2378('0x44')]({'where':{'id':_0x134e1d[_0x2378('0x41')]['id']}})[_0x2378('0x1c')](handleEntityNotFound(_0x1b512f,null))[_0x2378('0x1c')](saveUpdates(_0x134e1d[_0x2378('0x46')],null))[_0x2378('0x1c')](respondWithResult(_0x1b512f,null))['catch'](handleError(_0x1b512f,null));};exports[_0x2378('0x1e')]=function(_0x1839b4,_0x12daba){return db['Variable'][_0x2378('0x44')]({'where':{'id':_0x1839b4['params']['id']}})[_0x2378('0x1c')](handleEntityNotFound(_0x12daba,null))[_0x2378('0x1c')](removeEntity(_0x12daba,null))[_0x2378('0x40')](handleError(_0x12daba,null));};