1995c55cea9dda0293c8632b7b096e9772526cc1
[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 _0x2123=['path','sox','ejs','lodash','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','apply','reject','save','then','destroy','get','Variables','error','stack','name','send','index','map','Variable','rawAttributes','fieldName','type','model','keys','intersection','query','attributes','fields','length','nolimit','order','sort','filters','filter','where','merge','options','includeAll','include','findAll','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x5de7be,_0x51575a){var _0x21b73e=function(_0x2d12a1){while(--_0x2d12a1){_0x5de7be['push'](_0x5de7be['shift']());}};_0x21b73e(++_0x51575a);}(_0x2123,0x190));var _0x3212=function(_0x1baf92,_0x4927ef){_0x1baf92=_0x1baf92-0x0;var _0x438017=_0x2123[_0x1baf92];return _0x438017;};'use strict';var pdf=require(_0x3212('0x0'));var emlformat=require(_0x3212('0x1'));var rimraf=require(_0x3212('0x2'));var zipdir=require(_0x3212('0x3'));var jsonpatch=require(_0x3212('0x4'));var rp=require(_0x3212('0x5'));var moment=require(_0x3212('0x6'));var BPromise=require(_0x3212('0x7'));var Mustache=require(_0x3212('0x8'));var util=require(_0x3212('0x9'));var path=require(_0x3212('0xa'));var sox=require(_0x3212('0xb'));var csv=require('to-csv');var ejs=require(_0x3212('0xc'));var fs=require('fs');var _=require(_0x3212('0xd'));var squel=require(_0x3212('0xe'));var crypto=require('crypto');var jsforce=require(_0x3212('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x3212('0x10'));var querystring=require(_0x3212('0x11'));var Papa=require(_0x3212('0x12'));var Redis=require(_0x3212('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x3212('0x14'));var hardwareService=require(_0x3212('0x15'));var logger=require(_0x3212('0x16'))(_0x3212('0x17'));var utils=require(_0x3212('0x18'));var config=require(_0x3212('0x19'));var db=require(_0x3212('0x1a'))['db'];function respondWithStatusCode(_0x359cef,_0x26c1c8){_0x26c1c8=_0x26c1c8||0xcc;return function(_0x2d5fce){if(_0x2d5fce){return _0x359cef[_0x3212('0x1b')](_0x26c1c8);}return _0x359cef[_0x3212('0x1c')](_0x26c1c8)[_0x3212('0x1d')]();};}function respondWithResult(_0x3c8cce,_0x271593){_0x271593=_0x271593||0xc8;return function(_0x3d1fda){if(_0x3d1fda){return _0x3c8cce[_0x3212('0x1c')](_0x271593)[_0x3212('0x1e')](_0x3d1fda);}};}function respondWithFilteredResult(_0x19edfb,_0x46c5f5){return function(_0x42069c){if(_0x42069c){var _0x1ef2f7=_0x42069c[_0x3212('0x1f')],_0x5b2ab8=_0x46c5f5[_0x3212('0x20')],_0x43a642=_0x46c5f5[_0x3212('0x20')]+_0x46c5f5[_0x3212('0x21')],_0x1719a5;if(_0x43a642>=_0x1ef2f7){_0x43a642=_0x1ef2f7;_0x1719a5=0xc8;}else{_0x1719a5=0xce;}_0x19edfb[_0x3212('0x1c')](_0x1719a5);return _0x19edfb['set']('Content-Range',_0x5b2ab8+'-'+_0x43a642+'/'+_0x1ef2f7)[_0x3212('0x1e')](_0x42069c);}return null;};}function patchUpdates(_0x49f5c2){return function(_0x2380e8){try{jsonpatch[_0x3212('0x22')](_0x2380e8,_0x49f5c2,!![]);}catch(_0xb0b717){return BPromise[_0x3212('0x23')](_0xb0b717);}return _0x2380e8[_0x3212('0x24')]();};}function saveUpdates(_0x4aa12a,_0x41e61e){return function(_0x462094){if(_0x462094){return _0x462094['update'](_0x4aa12a)[_0x3212('0x25')](function(_0x3fa445){return _0x3fa445;});}return null;};}function removeEntity(_0x293b96,_0x4e3eda){return function(_0x5d27d5){if(_0x5d27d5){return _0x5d27d5[_0x3212('0x26')]()[_0x3212('0x25')](function(){var _0x144858=_0x5d27d5[_0x3212('0x27')]({'plain':!![]});var _0x3ceb3c=_0x3212('0x28');return db['UserProfileResource']['destroy']({'where':{'type':_0x3ceb3c,'resourceId':_0x144858['id']}})[_0x3212('0x25')](function(){return _0x5d27d5;});})['then'](function(){_0x293b96[_0x3212('0x1c')](0xcc)[_0x3212('0x1d')]();});}};}function handleEntityNotFound(_0x3319d0,_0x5bb0a5){return function(_0x2d1b92){if(!_0x2d1b92){_0x3319d0[_0x3212('0x1b')](0x194);}return _0x2d1b92;};}function handleError(_0x851b91,_0x4de92e){_0x4de92e=_0x4de92e||0x1f4;return function(_0x206980){logger[_0x3212('0x29')](_0x206980[_0x3212('0x2a')]);if(_0x206980[_0x3212('0x2b')]){delete _0x206980[_0x3212('0x2b')];}_0x851b91[_0x3212('0x1c')](_0x4de92e)[_0x3212('0x2c')](_0x206980);};}exports[_0x3212('0x2d')]=function(_0x1de338,_0x225bf0){var _0x31c672={},_0x3c0b9b={},_0x57613f={'count':0x0,'rows':[]};var _0x1e2660=_[_0x3212('0x2e')](db[_0x3212('0x2f')][_0x3212('0x30')],function(_0x402a01){return{'name':_0x402a01[_0x3212('0x31')],'type':_0x402a01[_0x3212('0x32')]['key']};});_0x3c0b9b[_0x3212('0x33')]=_['map'](_0x1e2660,_0x3212('0x2b'));_0x3c0b9b['query']=_[_0x3212('0x34')](_0x1de338['query']);_0x3c0b9b['filters']=_[_0x3212('0x35')](_0x3c0b9b['model'],_0x3c0b9b[_0x3212('0x36')]);_0x31c672[_0x3212('0x37')]=_[_0x3212('0x35')](_0x3c0b9b['model'],qs[_0x3212('0x38')](_0x1de338[_0x3212('0x36')][_0x3212('0x38')]));_0x31c672['attributes']=_0x31c672[_0x3212('0x37')][_0x3212('0x39')]?_0x31c672[_0x3212('0x37')]:_0x3c0b9b[_0x3212('0x33')];if(!_0x1de338[_0x3212('0x36')]['hasOwnProperty'](_0x3212('0x3a'))){_0x31c672[_0x3212('0x21')]=qs[_0x3212('0x21')](_0x1de338['query'][_0x3212('0x21')]);_0x31c672[_0x3212('0x20')]=qs[_0x3212('0x20')](_0x1de338[_0x3212('0x36')]['offset']);}_0x31c672[_0x3212('0x3b')]=qs[_0x3212('0x3c')](_0x1de338[_0x3212('0x36')][_0x3212('0x3c')]);_0x31c672['where']=qs['filters'](_['pick'](_0x1de338['query'],_0x3c0b9b[_0x3212('0x3d')]));if(_0x1de338[_0x3212('0x36')][_0x3212('0x3e')]){_0x31c672[_0x3212('0x3f')]=_['merge'](_0x31c672[_0x3212('0x3f')],{'$or':_[_0x3212('0x2e')](_0x1e2660,function(_0x18e20){if(_0x18e20[_0x3212('0x32')]!=='VIRTUAL'){var _0x4fad05={};_0x4fad05[_0x18e20[_0x3212('0x2b')]]={'$like':'%'+_0x1de338[_0x3212('0x36')][_0x3212('0x3e')]+'%'};return _0x4fad05;}})});}_0x31c672=_[_0x3212('0x40')]({},_0x31c672,_0x1de338[_0x3212('0x41')]);var _0x356c42={'where':_0x31c672[_0x3212('0x3f')]};return db['Variable'][_0x3212('0x1f')](_0x356c42)[_0x3212('0x25')](function(_0x3e1e84){_0x57613f[_0x3212('0x1f')]=_0x3e1e84;if(_0x1de338['query'][_0x3212('0x42')]){_0x31c672[_0x3212('0x43')]=[{'all':!![]}];}return db[_0x3212('0x2f')][_0x3212('0x44')](_0x31c672);})['then'](function(_0xb365f7){_0x57613f['rows']=_0xb365f7;return _0x57613f;})[_0x3212('0x25')](respondWithFilteredResult(_0x225bf0,_0x31c672))[_0x3212('0x45')](handleError(_0x225bf0,null));};exports[_0x3212('0x46')]=function(_0x45e5bf,_0x9a24e3){var _0x216469={'raw':!![],'where':{'id':_0x45e5bf[_0x3212('0x47')]['id']}},_0x14626d={};_0x14626d['model']=_[_0x3212('0x34')](db[_0x3212('0x2f')][_0x3212('0x30')]);_0x14626d[_0x3212('0x36')]=_[_0x3212('0x34')](_0x45e5bf[_0x3212('0x36')]);_0x14626d[_0x3212('0x3d')]=_['intersection'](_0x14626d[_0x3212('0x33')],_0x14626d[_0x3212('0x36')]);_0x216469[_0x3212('0x37')]=_[_0x3212('0x35')](_0x14626d['model'],qs['fields'](_0x45e5bf['query']['fields']));_0x216469[_0x3212('0x37')]=_0x216469['attributes'][_0x3212('0x39')]?_0x216469[_0x3212('0x37')]:_0x14626d[_0x3212('0x33')];if(_0x45e5bf[_0x3212('0x36')]['includeAll']){_0x216469[_0x3212('0x43')]=[{'all':!![]}];}_0x216469=_[_0x3212('0x40')]({},_0x216469,_0x45e5bf[_0x3212('0x41')]);return db['Variable'][_0x3212('0x48')](_0x216469)[_0x3212('0x25')](handleEntityNotFound(_0x9a24e3,null))[_0x3212('0x25')](respondWithResult(_0x9a24e3,null))[_0x3212('0x45')](handleError(_0x9a24e3,null));};exports['create']=function(_0x3ede8c,_0x13a42d){return db['Variable'][_0x3212('0x49')](_0x3ede8c[_0x3212('0x4a')],{})[_0x3212('0x25')](function(_0x4c6e56){var _0x4c87d7=_0x3ede8c[_0x3212('0x4b')][_0x3212('0x27')]({'plain':!![]});if(!_0x4c87d7)throw new Error(_0x3212('0x4c'));if(_0x4c87d7['role']===_0x3212('0x4b')){var _0x3ef982=_0x4c6e56['get']({'plain':!![]});var _0x35bda2=_0x3212('0x28');return db[_0x3212('0x4d')]['find']({'where':{'name':_0x35bda2,'userProfileId':_0x4c87d7['userProfileId']},'raw':!![]})[_0x3212('0x25')](function(_0x30b5d3){if(_0x30b5d3&&_0x30b5d3[_0x3212('0x4e')]===0x0){return db[_0x3212('0x4f')]['create']({'name':_0x3ef982[_0x3212('0x2b')],'resourceId':_0x3ef982['id'],'type':_0x30b5d3[_0x3212('0x2b')],'sectionId':_0x30b5d3['id']},{})[_0x3212('0x25')](function(){return _0x4c6e56;});}else{return _0x4c6e56;}})['catch'](function(_0x1e77b3){logger['error'](_0x3212('0x50'),_0x1e77b3);throw _0x1e77b3;});}return _0x4c6e56;})[_0x3212('0x25')](respondWithResult(_0x13a42d,0xc9))[_0x3212('0x45')](handleError(_0x13a42d,null));};exports[_0x3212('0x51')]=function(_0x47df86,_0x2b486c){if(_0x47df86[_0x3212('0x4a')]['id']){delete _0x47df86['body']['id'];}return db[_0x3212('0x2f')][_0x3212('0x48')]({'where':{'id':_0x47df86[_0x3212('0x47')]['id']}})[_0x3212('0x25')](handleEntityNotFound(_0x2b486c,null))[_0x3212('0x25')](saveUpdates(_0x47df86[_0x3212('0x4a')],null))[_0x3212('0x25')](respondWithResult(_0x2b486c,null))['catch'](handleError(_0x2b486c,null));};exports[_0x3212('0x26')]=function(_0x36e149,_0x45c0ef){return db[_0x3212('0x2f')]['find']({'where':{'id':_0x36e149['params']['id']}})['then'](handleEntityNotFound(_0x45c0ef,null))['then'](removeEntity(_0x45c0ef,null))[_0x3212('0x45')](handleError(_0x45c0ef,null));};