8ec11ff539bcfa3d9c047df00df5efbc9cfcd75e
[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 _0xc5b5=['model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','show','params','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','limit','undefined','count','set','apply','reject','save','update','destroy','get','Variables','then','end','error','stack','name','send','index','map','Variable','rawAttributes','fieldName','key'];(function(_0x1a2743,_0x39a78d){var _0x5a6ebb=function(_0x15f10b){while(--_0x15f10b){_0x1a2743['push'](_0x1a2743['shift']());}};_0x5a6ebb(++_0x39a78d);}(_0xc5b5,0x76));var _0x5c5b=function(_0x452fde,_0x339a5f){_0x452fde=_0x452fde-0x0;var _0x36ecee=_0xc5b5[_0x452fde];return _0x36ecee;};'use strict';var emlformat=require(_0x5c5b('0x0'));var rimraf=require(_0x5c5b('0x1'));var zipdir=require(_0x5c5b('0x2'));var jsonpatch=require(_0x5c5b('0x3'));var rp=require(_0x5c5b('0x4'));var moment=require(_0x5c5b('0x5'));var BPromise=require(_0x5c5b('0x6'));var Mustache=require('mustache');var util=require(_0x5c5b('0x7'));var path=require('path');var sox=require(_0x5c5b('0x8'));var csv=require(_0x5c5b('0x9'));var ejs=require(_0x5c5b('0xa'));var fs=require('fs');var fs_extra=require(_0x5c5b('0xb'));var _=require(_0x5c5b('0xc'));var squel=require(_0x5c5b('0xd'));var crypto=require(_0x5c5b('0xe'));var jsforce=require(_0x5c5b('0xf'));var deskjs=require(_0x5c5b('0x10'));var toCsv=require(_0x5c5b('0x9'));var querystring=require('querystring');var Papa=require(_0x5c5b('0x11'));var Redis=require(_0x5c5b('0x12'));var authService=require(_0x5c5b('0x13'));var qs=require(_0x5c5b('0x14'));var as=require(_0x5c5b('0x15'));var hardwareService=require(_0x5c5b('0x16'));var logger=require('../../config/logger')(_0x5c5b('0x17'));var utils=require(_0x5c5b('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x5c5b('0x19'));var db=require(_0x5c5b('0x1a'))['db'];function respondWithStatusCode(_0x34f283,_0x3d473d){_0x3d473d=_0x3d473d||0xcc;return function(_0x2bac0b){if(_0x2bac0b){return _0x34f283[_0x5c5b('0x1b')](_0x3d473d);}return _0x34f283[_0x5c5b('0x1c')](_0x3d473d)['end']();};}function respondWithResult(_0x586b62,_0x345b3b){_0x345b3b=_0x345b3b||0xc8;return function(_0xbe9db7){if(_0xbe9db7){return _0x586b62['status'](_0x345b3b)[_0x5c5b('0x1d')](_0xbe9db7);}};}function respondWithFilteredResult(_0x2324ae,_0x430cd0){return function(_0x3d1b62){if(_0x3d1b62){var _0x152865=typeof _0x430cd0[_0x5c5b('0x1e')]==='undefined'&&typeof _0x430cd0[_0x5c5b('0x1f')]===_0x5c5b('0x20');var _0x115f18=_0x3d1b62[_0x5c5b('0x21')];var _0x512554=_0x152865?0x0:_0x430cd0['offset'];var _0x3cf3b0=_0x152865?_0x3d1b62[_0x5c5b('0x21')]:_0x430cd0['offset']+_0x430cd0[_0x5c5b('0x1f')];var _0x1e00b8;if(_0x3cf3b0>=_0x115f18){_0x3cf3b0=_0x115f18;_0x1e00b8=0xc8;}else{_0x1e00b8=0xce;}_0x2324ae[_0x5c5b('0x1c')](_0x1e00b8);return _0x2324ae[_0x5c5b('0x22')]('Content-Range',_0x512554+'-'+_0x3cf3b0+'/'+_0x115f18)['json'](_0x3d1b62);}return null;};}function patchUpdates(_0x54a0bb){return function(_0x5eb813){try{jsonpatch[_0x5c5b('0x23')](_0x5eb813,_0x54a0bb,!![]);}catch(_0x4b5813){return BPromise[_0x5c5b('0x24')](_0x4b5813);}return _0x5eb813[_0x5c5b('0x25')]();};}function saveUpdates(_0x1d16f0,_0x568bad){return function(_0x31d8d9){if(_0x31d8d9){return _0x31d8d9[_0x5c5b('0x26')](_0x1d16f0)['then'](function(_0x3b776e){return _0x3b776e;});}return null;};}function removeEntity(_0x264840,_0x3ed5c7){return function(_0x3ebdad){if(_0x3ebdad){return _0x3ebdad[_0x5c5b('0x27')]()['then'](function(){var _0x39dce9=_0x3ebdad[_0x5c5b('0x28')]({'plain':!![]});var _0x9f047e=_0x5c5b('0x29');return db['UserProfileResource'][_0x5c5b('0x27')]({'where':{'type':_0x9f047e,'resourceId':_0x39dce9['id']}})[_0x5c5b('0x2a')](function(){return _0x3ebdad;});})[_0x5c5b('0x2a')](function(){_0x264840[_0x5c5b('0x1c')](0xcc)[_0x5c5b('0x2b')]();});}};}function handleEntityNotFound(_0x30c6a7,_0x36dd45){return function(_0x557ce9){if(!_0x557ce9){_0x30c6a7[_0x5c5b('0x1b')](0x194);}return _0x557ce9;};}function handleError(_0x3c3a1e,_0x9f620b){_0x9f620b=_0x9f620b||0x1f4;return function(_0x1db10b){logger[_0x5c5b('0x2c')](_0x1db10b[_0x5c5b('0x2d')]);if(_0x1db10b[_0x5c5b('0x2e')]){delete _0x1db10b[_0x5c5b('0x2e')];}_0x3c3a1e[_0x5c5b('0x1c')](_0x9f620b)[_0x5c5b('0x2f')](_0x1db10b);};}exports[_0x5c5b('0x30')]=function(_0x251f13,_0x5ae198){var _0x24a1ef={},_0x1d641f={},_0x435631={'count':0x0,'rows':[]};var _0x4326db=_[_0x5c5b('0x31')](db[_0x5c5b('0x32')][_0x5c5b('0x33')],function(_0x33d8c3){return{'name':_0x33d8c3[_0x5c5b('0x34')],'type':_0x33d8c3['type'][_0x5c5b('0x35')]};});_0x1d641f[_0x5c5b('0x36')]=_[_0x5c5b('0x31')](_0x4326db,_0x5c5b('0x2e'));_0x1d641f[_0x5c5b('0x37')]=_[_0x5c5b('0x38')](_0x251f13[_0x5c5b('0x37')]);_0x1d641f[_0x5c5b('0x39')]=_[_0x5c5b('0x3a')](_0x1d641f[_0x5c5b('0x36')],_0x1d641f['query']);_0x24a1ef[_0x5c5b('0x3b')]=_['intersection'](_0x1d641f[_0x5c5b('0x36')],qs[_0x5c5b('0x3c')](_0x251f13['query'][_0x5c5b('0x3c')]));_0x24a1ef['attributes']=_0x24a1ef[_0x5c5b('0x3b')][_0x5c5b('0x3d')]?_0x24a1ef[_0x5c5b('0x3b')]:_0x1d641f[_0x5c5b('0x36')];if(!_0x251f13[_0x5c5b('0x37')][_0x5c5b('0x3e')]('nolimit')){_0x24a1ef[_0x5c5b('0x1f')]=qs[_0x5c5b('0x1f')](_0x251f13[_0x5c5b('0x37')]['limit']);_0x24a1ef['offset']=qs[_0x5c5b('0x1e')](_0x251f13[_0x5c5b('0x37')][_0x5c5b('0x1e')]);}_0x24a1ef[_0x5c5b('0x3f')]=qs['sort'](_0x251f13[_0x5c5b('0x37')][_0x5c5b('0x40')]);_0x24a1ef[_0x5c5b('0x41')]=qs[_0x5c5b('0x39')](_[_0x5c5b('0x42')](_0x251f13[_0x5c5b('0x37')],_0x1d641f[_0x5c5b('0x39')]),_0x4326db);if(_0x251f13[_0x5c5b('0x37')][_0x5c5b('0x43')]){_0x24a1ef[_0x5c5b('0x41')]=_[_0x5c5b('0x44')](_0x24a1ef[_0x5c5b('0x41')],{'$or':_[_0x5c5b('0x31')](_0x4326db,function(_0x6e94c0){if(_0x6e94c0[_0x5c5b('0x45')]!==_0x5c5b('0x46')){var _0x217810={};_0x217810[_0x6e94c0[_0x5c5b('0x2e')]]={'$like':'%'+_0x251f13[_0x5c5b('0x37')][_0x5c5b('0x43')]+'%'};return _0x217810;}})});}_0x24a1ef=_[_0x5c5b('0x44')]({},_0x24a1ef,_0x251f13[_0x5c5b('0x47')]);var _0x583441={'where':_0x24a1ef['where']};return db['Variable']['count'](_0x583441)['then'](function(_0x199b6f){_0x435631['count']=_0x199b6f;if(_0x251f13['query'][_0x5c5b('0x48')]){_0x24a1ef[_0x5c5b('0x49')]=[{'all':!![]}];}return db['Variable'][_0x5c5b('0x4a')](_0x24a1ef);})[_0x5c5b('0x2a')](function(_0x255336){_0x435631['rows']=_0x255336;return _0x435631;})[_0x5c5b('0x2a')](respondWithFilteredResult(_0x5ae198,_0x24a1ef))['catch'](handleError(_0x5ae198,null));};exports[_0x5c5b('0x4b')]=function(_0x32187a,_0x562d63){var _0x21b1bc={'raw':!![],'where':{'id':_0x32187a[_0x5c5b('0x4c')]['id']}},_0x5f5700={};_0x5f5700[_0x5c5b('0x36')]=_[_0x5c5b('0x38')](db['Variable'][_0x5c5b('0x33')]);_0x5f5700['query']=_['keys'](_0x32187a['query']);_0x5f5700[_0x5c5b('0x39')]=_[_0x5c5b('0x3a')](_0x5f5700['model'],_0x5f5700['query']);_0x21b1bc[_0x5c5b('0x3b')]=_[_0x5c5b('0x3a')](_0x5f5700['model'],qs['fields'](_0x32187a[_0x5c5b('0x37')][_0x5c5b('0x3c')]));_0x21b1bc[_0x5c5b('0x3b')]=_0x21b1bc[_0x5c5b('0x3b')][_0x5c5b('0x3d')]?_0x21b1bc[_0x5c5b('0x3b')]:_0x5f5700[_0x5c5b('0x36')];if(_0x32187a[_0x5c5b('0x37')][_0x5c5b('0x48')]){_0x21b1bc['include']=[{'all':!![]}];}_0x21b1bc=_[_0x5c5b('0x44')]({},_0x21b1bc,_0x32187a[_0x5c5b('0x47')]);return db[_0x5c5b('0x32')][_0x5c5b('0x4d')](_0x21b1bc)[_0x5c5b('0x2a')](handleEntityNotFound(_0x562d63,null))[_0x5c5b('0x2a')](respondWithResult(_0x562d63,null))[_0x5c5b('0x4e')](handleError(_0x562d63,null));};exports['create']=function(_0x3b7b9c,_0x519d40){return db['Variable'][_0x5c5b('0x4f')](_0x3b7b9c[_0x5c5b('0x50')],{})[_0x5c5b('0x2a')](function(_0x452de0){var _0x30e875=_0x3b7b9c[_0x5c5b('0x51')][_0x5c5b('0x28')]({'plain':!![]});if(!_0x30e875)throw new Error(_0x5c5b('0x52'));if(_0x30e875['role']===_0x5c5b('0x51')){var _0x4b668a=_0x452de0[_0x5c5b('0x28')]({'plain':!![]});var _0x432a92='Variables';return db['UserProfileSection'][_0x5c5b('0x4d')]({'where':{'name':_0x432a92,'userProfileId':_0x30e875['userProfileId']},'raw':!![]})[_0x5c5b('0x2a')](function(_0x3e2bd5){if(_0x3e2bd5&&_0x3e2bd5[_0x5c5b('0x53')]===0x0){return db[_0x5c5b('0x54')][_0x5c5b('0x4f')]({'name':_0x4b668a[_0x5c5b('0x2e')],'resourceId':_0x4b668a['id'],'type':_0x3e2bd5[_0x5c5b('0x2e')],'sectionId':_0x3e2bd5['id']},{})[_0x5c5b('0x2a')](function(){return _0x452de0;});}else{return _0x452de0;}})[_0x5c5b('0x4e')](function(_0x1756d8){logger[_0x5c5b('0x2c')](_0x5c5b('0x55'),_0x1756d8);throw _0x1756d8;});}return _0x452de0;})[_0x5c5b('0x2a')](respondWithResult(_0x519d40,0xc9))['catch'](handleError(_0x519d40,null));};exports[_0x5c5b('0x26')]=function(_0x4c391c,_0x1191ee){if(_0x4c391c[_0x5c5b('0x50')]['id']){delete _0x4c391c[_0x5c5b('0x50')]['id'];}return db[_0x5c5b('0x32')][_0x5c5b('0x4d')]({'where':{'id':_0x4c391c[_0x5c5b('0x4c')]['id']}})[_0x5c5b('0x2a')](handleEntityNotFound(_0x1191ee,null))[_0x5c5b('0x2a')](saveUpdates(_0x4c391c[_0x5c5b('0x50')],null))[_0x5c5b('0x2a')](respondWithResult(_0x1191ee,null))['catch'](handleError(_0x1191ee,null));};exports[_0x5c5b('0x27')]=function(_0x4a7300,_0x1e3e06){return db['Variable'][_0x5c5b('0x4d')]({'where':{'id':_0x4a7300[_0x5c5b('0x4c')]['id']}})['then'](handleEntityNotFound(_0x1e3e06,null))[_0x5c5b('0x2a')](removeEntity(_0x1e3e06,null))[_0x5c5b('0x4e')](handleError(_0x1e3e06,null));};