64060c7e620a22f3848ae9339bb07222be60f26b
[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 _0x38de=['sort','where','pick','type','VIRTUAL','merge','options','includeAll','include','rows','show','params','keys','find','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','get','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','update','then','destroy','UserProfileResource','stack','name','send','index','map','Variable','rawAttributes','fieldName','key','query','filters','model','intersection','fields','attributes','length','hasOwnProperty','order'];(function(_0x4c7fb5,_0x2548ef){var _0x2e10ac=function(_0xf7e27c){while(--_0xf7e27c){_0x4c7fb5['push'](_0x4c7fb5['shift']());}};_0x2e10ac(++_0x2548ef);}(_0x38de,0x6d));var _0xe38d=function(_0x2a72ac,_0x29f1cb){_0x2a72ac=_0x2a72ac-0x0;var _0x184b07=_0x38de[_0x2a72ac];return _0x184b07;};'use strict';var emlformat=require(_0xe38d('0x0'));var rimraf=require(_0xe38d('0x1'));var zipdir=require(_0xe38d('0x2'));var jsonpatch=require(_0xe38d('0x3'));var rp=require(_0xe38d('0x4'));var moment=require(_0xe38d('0x5'));var BPromise=require(_0xe38d('0x6'));var Mustache=require('mustache');var util=require(_0xe38d('0x7'));var path=require(_0xe38d('0x8'));var sox=require(_0xe38d('0x9'));var csv=require(_0xe38d('0xa'));var ejs=require(_0xe38d('0xb'));var fs=require('fs');var fs_extra=require(_0xe38d('0xc'));var _=require(_0xe38d('0xd'));var squel=require(_0xe38d('0xe'));var crypto=require('crypto');var jsforce=require(_0xe38d('0xf'));var deskjs=require(_0xe38d('0x10'));var toCsv=require('to-csv');var querystring=require(_0xe38d('0x11'));var Papa=require(_0xe38d('0x12'));var Redis=require(_0xe38d('0x13'));var authService=require(_0xe38d('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe38d('0x15'));var logger=require(_0xe38d('0x16'))('api');var utils=require(_0xe38d('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xe38d('0x18'))['db'];function respondWithStatusCode(_0x10546e,_0x2e1827){_0x2e1827=_0x2e1827||0xcc;return function(_0x573aba){if(_0x573aba){return _0x10546e[_0xe38d('0x19')](_0x2e1827);}return _0x10546e[_0xe38d('0x1a')](_0x2e1827)[_0xe38d('0x1b')]();};}function respondWithResult(_0x2d4358,_0x30ecd2){_0x30ecd2=_0x30ecd2||0xc8;return function(_0x4ecfc9){if(_0x4ecfc9){return _0x2d4358['status'](_0x30ecd2)[_0xe38d('0x1c')](_0x4ecfc9);}};}function respondWithFilteredResult(_0xc4c084,_0x12af87){return function(_0x5a1f9c){if(_0x5a1f9c){var _0x38f2af=typeof _0x12af87[_0xe38d('0x1d')]===_0xe38d('0x1e')&&typeof _0x12af87['limit']===_0xe38d('0x1e');var _0xb2e71=_0x5a1f9c[_0xe38d('0x1f')];var _0x3297e8=_0x38f2af?0x0:_0x12af87['offset'];var _0x286832=_0x38f2af?_0x5a1f9c['count']:_0x12af87[_0xe38d('0x1d')]+_0x12af87[_0xe38d('0x20')];var _0x2efeab;if(_0x286832>=_0xb2e71){_0x286832=_0xb2e71;_0x2efeab=0xc8;}else{_0x2efeab=0xce;}_0xc4c084[_0xe38d('0x1a')](_0x2efeab);return _0xc4c084[_0xe38d('0x21')](_0xe38d('0x22'),_0x3297e8+'-'+_0x286832+'/'+_0xb2e71)[_0xe38d('0x1c')](_0x5a1f9c);}return null;};}function patchUpdates(_0x5967ce){return function(_0x3b7303){try{jsonpatch['apply'](_0x3b7303,_0x5967ce,!![]);}catch(_0x24a229){return BPromise['reject'](_0x24a229);}return _0x3b7303['save']();};}function saveUpdates(_0x2ad594,_0x5365f9){return function(_0x244aa7){if(_0x244aa7){return _0x244aa7[_0xe38d('0x23')](_0x2ad594)[_0xe38d('0x24')](function(_0xa08fa0){return _0xa08fa0;});}return null;};}function removeEntity(_0x48612e,_0x559560){return function(_0xa31ef2){if(_0xa31ef2){return _0xa31ef2[_0xe38d('0x25')]()[_0xe38d('0x24')](function(){var _0x32346a=_0xa31ef2['get']({'plain':!![]});var _0x404f47='Variables';return db[_0xe38d('0x26')]['destroy']({'where':{'type':_0x404f47,'resourceId':_0x32346a['id']}})['then'](function(){return _0xa31ef2;});})[_0xe38d('0x24')](function(){_0x48612e[_0xe38d('0x1a')](0xcc)[_0xe38d('0x1b')]();});}};}function handleEntityNotFound(_0x395f17,_0xcfc010){return function(_0x1e37a9){if(!_0x1e37a9){_0x395f17[_0xe38d('0x19')](0x194);}return _0x1e37a9;};}function handleError(_0x290f41,_0x50ce8e){_0x50ce8e=_0x50ce8e||0x1f4;return function(_0x2d57ea){logger['error'](_0x2d57ea[_0xe38d('0x27')]);if(_0x2d57ea[_0xe38d('0x28')]){delete _0x2d57ea['name'];}_0x290f41['status'](_0x50ce8e)[_0xe38d('0x29')](_0x2d57ea);};}exports[_0xe38d('0x2a')]=function(_0x26cec5,_0x2a7d51){var _0x58fe7b={},_0x32c6cf={},_0x2d8a1={'count':0x0,'rows':[]};var _0x2053a4=_[_0xe38d('0x2b')](db[_0xe38d('0x2c')][_0xe38d('0x2d')],function(_0x5cd62a){return{'name':_0x5cd62a[_0xe38d('0x2e')],'type':_0x5cd62a['type'][_0xe38d('0x2f')]};});_0x32c6cf['model']=_[_0xe38d('0x2b')](_0x2053a4,_0xe38d('0x28'));_0x32c6cf['query']=_['keys'](_0x26cec5[_0xe38d('0x30')]);_0x32c6cf[_0xe38d('0x31')]=_['intersection'](_0x32c6cf[_0xe38d('0x32')],_0x32c6cf['query']);_0x58fe7b['attributes']=_[_0xe38d('0x33')](_0x32c6cf[_0xe38d('0x32')],qs[_0xe38d('0x34')](_0x26cec5[_0xe38d('0x30')]['fields']));_0x58fe7b[_0xe38d('0x35')]=_0x58fe7b['attributes'][_0xe38d('0x36')]?_0x58fe7b[_0xe38d('0x35')]:_0x32c6cf[_0xe38d('0x32')];if(!_0x26cec5[_0xe38d('0x30')][_0xe38d('0x37')]('nolimit')){_0x58fe7b[_0xe38d('0x20')]=qs['limit'](_0x26cec5[_0xe38d('0x30')][_0xe38d('0x20')]);_0x58fe7b[_0xe38d('0x1d')]=qs[_0xe38d('0x1d')](_0x26cec5[_0xe38d('0x30')]['offset']);}_0x58fe7b[_0xe38d('0x38')]=qs[_0xe38d('0x39')](_0x26cec5[_0xe38d('0x30')]['sort']);_0x58fe7b[_0xe38d('0x3a')]=qs['filters'](_[_0xe38d('0x3b')](_0x26cec5['query'],_0x32c6cf[_0xe38d('0x31')]),_0x2053a4);if(_0x26cec5[_0xe38d('0x30')]['filter']){_0x58fe7b['where']=_['merge'](_0x58fe7b[_0xe38d('0x3a')],{'$or':_[_0xe38d('0x2b')](_0x2053a4,function(_0x58663f){if(_0x58663f[_0xe38d('0x3c')]!==_0xe38d('0x3d')){var _0x145825={};_0x145825[_0x58663f[_0xe38d('0x28')]]={'$like':'%'+_0x26cec5[_0xe38d('0x30')]['filter']+'%'};return _0x145825;}})});}_0x58fe7b=_[_0xe38d('0x3e')]({},_0x58fe7b,_0x26cec5[_0xe38d('0x3f')]);var _0x251605={'where':_0x58fe7b['where']};return db[_0xe38d('0x2c')][_0xe38d('0x1f')](_0x251605)[_0xe38d('0x24')](function(_0x10173a){_0x2d8a1['count']=_0x10173a;if(_0x26cec5[_0xe38d('0x30')][_0xe38d('0x40')]){_0x58fe7b[_0xe38d('0x41')]=[{'all':!![]}];}return db['Variable']['findAll'](_0x58fe7b);})[_0xe38d('0x24')](function(_0x4f9fd4){_0x2d8a1[_0xe38d('0x42')]=_0x4f9fd4;return _0x2d8a1;})[_0xe38d('0x24')](respondWithFilteredResult(_0x2a7d51,_0x58fe7b))['catch'](handleError(_0x2a7d51,null));};exports[_0xe38d('0x43')]=function(_0x4dd478,_0x1e43c2){var _0x469e0d={'raw':!![],'where':{'id':_0x4dd478[_0xe38d('0x44')]['id']}},_0x5f539a={};_0x5f539a[_0xe38d('0x32')]=_[_0xe38d('0x45')](db['Variable']['rawAttributes']);_0x5f539a['query']=_['keys'](_0x4dd478[_0xe38d('0x30')]);_0x5f539a[_0xe38d('0x31')]=_[_0xe38d('0x33')](_0x5f539a[_0xe38d('0x32')],_0x5f539a['query']);_0x469e0d[_0xe38d('0x35')]=_[_0xe38d('0x33')](_0x5f539a['model'],qs[_0xe38d('0x34')](_0x4dd478['query'][_0xe38d('0x34')]));_0x469e0d[_0xe38d('0x35')]=_0x469e0d[_0xe38d('0x35')]['length']?_0x469e0d['attributes']:_0x5f539a[_0xe38d('0x32')];if(_0x4dd478[_0xe38d('0x30')]['includeAll']){_0x469e0d[_0xe38d('0x41')]=[{'all':!![]}];}_0x469e0d=_[_0xe38d('0x3e')]({},_0x469e0d,_0x4dd478[_0xe38d('0x3f')]);return db['Variable'][_0xe38d('0x46')](_0x469e0d)[_0xe38d('0x24')](handleEntityNotFound(_0x1e43c2,null))[_0xe38d('0x24')](respondWithResult(_0x1e43c2,null))[_0xe38d('0x47')](handleError(_0x1e43c2,null));};exports[_0xe38d('0x48')]=function(_0x5ee527,_0x34a9d5){return db[_0xe38d('0x2c')]['create'](_0x5ee527[_0xe38d('0x49')],{})['then'](function(_0xc7603d){var _0x5a8a69=_0x5ee527['user']['get']({'plain':!![]});if(!_0x5a8a69)throw new Error(_0xe38d('0x4a'));if(_0x5a8a69[_0xe38d('0x4b')]===_0xe38d('0x4c')){var _0x5ca604=_0xc7603d[_0xe38d('0x4d')]({'plain':!![]});var _0x42c72a='Variables';return db[_0xe38d('0x4e')][_0xe38d('0x46')]({'where':{'name':_0x42c72a,'userProfileId':_0x5a8a69[_0xe38d('0x4f')]},'raw':!![]})['then'](function(_0x40c92c){if(_0x40c92c&&_0x40c92c[_0xe38d('0x50')]===0x0){return db[_0xe38d('0x26')][_0xe38d('0x48')]({'name':_0x5ca604[_0xe38d('0x28')],'resourceId':_0x5ca604['id'],'type':_0x40c92c[_0xe38d('0x28')],'sectionId':_0x40c92c['id']},{})['then'](function(){return _0xc7603d;});}else{return _0xc7603d;}})[_0xe38d('0x47')](function(_0x2a975b){logger[_0xe38d('0x51')](_0xe38d('0x52'),_0x2a975b);throw _0x2a975b;});}return _0xc7603d;})[_0xe38d('0x24')](respondWithResult(_0x34a9d5,0xc9))[_0xe38d('0x47')](handleError(_0x34a9d5,null));};exports['update']=function(_0x3d22c1,_0x55757e){if(_0x3d22c1['body']['id']){delete _0x3d22c1[_0xe38d('0x49')]['id'];}return db[_0xe38d('0x2c')][_0xe38d('0x46')]({'where':{'id':_0x3d22c1[_0xe38d('0x44')]['id']}})[_0xe38d('0x24')](handleEntityNotFound(_0x55757e,null))[_0xe38d('0x24')](saveUpdates(_0x3d22c1[_0xe38d('0x49')],null))[_0xe38d('0x24')](respondWithResult(_0x55757e,null))[_0xe38d('0x47')](handleError(_0x55757e,null));};exports[_0xe38d('0x25')]=function(_0x53bba5,_0x8ff1bc){return db[_0xe38d('0x2c')]['find']({'where':{'id':_0x53bba5[_0xe38d('0x44')]['id']}})[_0xe38d('0x24')](handleEntityNotFound(_0x8ff1bc,null))[_0xe38d('0x24')](removeEntity(_0x8ff1bc,null))[_0xe38d('0x47')](handleError(_0x8ff1bc,null));};