Built motion from commit 092f8824.|2.5.49
[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 _0xa4bc=['to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','undefined','count','offset','set','Content-Range','reject','update','then','destroy','get','UserProfileResource','sendStatus','error','stack','name','send','index','map','Variable','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Variables','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','fast-json-patch','bluebird','util','path'];(function(_0x1f1e31,_0x27b5c3){var _0x229b56=function(_0x16db77){while(--_0x16db77){_0x1f1e31['push'](_0x1f1e31['shift']());}};_0x229b56(++_0x27b5c3);}(_0xa4bc,0x1ec));var _0xca4b=function(_0x4d07cc,_0x587613){_0x4d07cc=_0x4d07cc-0x0;var _0x42de3b=_0xa4bc[_0x4d07cc];return _0x42de3b;};'use strict';var emlformat=require(_0xca4b('0x0'));var rimraf=require(_0xca4b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xca4b('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xca4b('0x3'));var Mustache=require('mustache');var util=require(_0xca4b('0x4'));var path=require(_0xca4b('0x5'));var sox=require('sox');var csv=require(_0xca4b('0x6'));var ejs=require(_0xca4b('0x7'));var fs=require('fs');var fs_extra=require(_0xca4b('0x8'));var _=require(_0xca4b('0x9'));var squel=require(_0xca4b('0xa'));var crypto=require('crypto');var jsforce=require(_0xca4b('0xb'));var deskjs=require(_0xca4b('0xc'));var toCsv=require('to-csv');var querystring=require(_0xca4b('0xd'));var Papa=require(_0xca4b('0xe'));var Redis=require(_0xca4b('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xca4b('0x10'));var as=require(_0xca4b('0x11'));var hardwareService=require(_0xca4b('0x12'));var logger=require(_0xca4b('0x13'))('api');var utils=require(_0xca4b('0x14'));var config=require(_0xca4b('0x15'));var licenseUtil=require(_0xca4b('0x16'));var db=require(_0xca4b('0x17'))['db'];function respondWithStatusCode(_0x4f39ac,_0x3f8a1e){_0x3f8a1e=_0x3f8a1e||0xcc;return function(_0x51e515){if(_0x51e515){return _0x4f39ac['sendStatus'](_0x3f8a1e);}return _0x4f39ac[_0xca4b('0x18')](_0x3f8a1e)[_0xca4b('0x19')]();};}function respondWithResult(_0x21d4f7,_0x44b8ae){_0x44b8ae=_0x44b8ae||0xc8;return function(_0x391129){if(_0x391129){return _0x21d4f7['status'](_0x44b8ae)['json'](_0x391129);}};}function respondWithFilteredResult(_0xe87095,_0x544d2b){return function(_0x57d9d7){if(_0x57d9d7){var _0x134f27=typeof _0x544d2b['offset']===_0xca4b('0x1a')&&typeof _0x544d2b['limit']===_0xca4b('0x1a');var _0x2b2cc3=_0x57d9d7[_0xca4b('0x1b')];var _0xe9fcbb=_0x134f27?0x0:_0x544d2b['offset'];var _0x2aafec=_0x134f27?_0x57d9d7[_0xca4b('0x1b')]:_0x544d2b[_0xca4b('0x1c')]+_0x544d2b['limit'];var _0x2beb13;if(_0x2aafec>=_0x2b2cc3){_0x2aafec=_0x2b2cc3;_0x2beb13=0xc8;}else{_0x2beb13=0xce;}_0xe87095[_0xca4b('0x18')](_0x2beb13);return _0xe87095[_0xca4b('0x1d')](_0xca4b('0x1e'),_0xe9fcbb+'-'+_0x2aafec+'/'+_0x2b2cc3)['json'](_0x57d9d7);}return null;};}function patchUpdates(_0x76b944){return function(_0x3102ae){try{jsonpatch['apply'](_0x3102ae,_0x76b944,!![]);}catch(_0x8d251){return BPromise[_0xca4b('0x1f')](_0x8d251);}return _0x3102ae['save']();};}function saveUpdates(_0x47c065,_0x153976){return function(_0x4cb4dd){if(_0x4cb4dd){return _0x4cb4dd[_0xca4b('0x20')](_0x47c065)[_0xca4b('0x21')](function(_0xd8d398){return _0xd8d398;});}return null;};}function removeEntity(_0x43d4bf,_0x183381){return function(_0x380317){if(_0x380317){return _0x380317[_0xca4b('0x22')]()['then'](function(){var _0x2c0feb=_0x380317[_0xca4b('0x23')]({'plain':!![]});var _0x3418dd='Variables';return db[_0xca4b('0x24')][_0xca4b('0x22')]({'where':{'type':_0x3418dd,'resourceId':_0x2c0feb['id']}})[_0xca4b('0x21')](function(){return _0x380317;});})[_0xca4b('0x21')](function(){_0x43d4bf[_0xca4b('0x18')](0xcc)[_0xca4b('0x19')]();});}};}function handleEntityNotFound(_0x3d53ce,_0x351ee5){return function(_0x1b343e){if(!_0x1b343e){_0x3d53ce[_0xca4b('0x25')](0x194);}return _0x1b343e;};}function handleError(_0x399306,_0x5f33ae){_0x5f33ae=_0x5f33ae||0x1f4;return function(_0x2e132a){logger[_0xca4b('0x26')](_0x2e132a[_0xca4b('0x27')]);if(_0x2e132a['name']){delete _0x2e132a[_0xca4b('0x28')];}_0x399306['status'](_0x5f33ae)[_0xca4b('0x29')](_0x2e132a);};}exports[_0xca4b('0x2a')]=function(_0x437e19,_0x47510d){var _0x48eb41={},_0x173cde={},_0x1bcfc6={'count':0x0,'rows':[]};var _0x253d98=_[_0xca4b('0x2b')](db[_0xca4b('0x2c')][_0xca4b('0x2d')],function(_0x15a6bd){return{'name':_0x15a6bd[_0xca4b('0x2e')],'type':_0x15a6bd[_0xca4b('0x2f')]['key']};});_0x173cde[_0xca4b('0x30')]=_[_0xca4b('0x2b')](_0x253d98,_0xca4b('0x28'));_0x173cde[_0xca4b('0x31')]=_[_0xca4b('0x32')](_0x437e19[_0xca4b('0x31')]);_0x173cde[_0xca4b('0x33')]=_[_0xca4b('0x34')](_0x173cde[_0xca4b('0x30')],_0x173cde['query']);_0x48eb41[_0xca4b('0x35')]=_[_0xca4b('0x34')](_0x173cde[_0xca4b('0x30')],qs['fields'](_0x437e19['query'][_0xca4b('0x36')]));_0x48eb41[_0xca4b('0x35')]=_0x48eb41['attributes'][_0xca4b('0x37')]?_0x48eb41[_0xca4b('0x35')]:_0x173cde[_0xca4b('0x30')];if(!_0x437e19[_0xca4b('0x31')][_0xca4b('0x38')](_0xca4b('0x39'))){_0x48eb41[_0xca4b('0x3a')]=qs[_0xca4b('0x3a')](_0x437e19[_0xca4b('0x31')][_0xca4b('0x3a')]);_0x48eb41[_0xca4b('0x1c')]=qs['offset'](_0x437e19[_0xca4b('0x31')][_0xca4b('0x1c')]);}_0x48eb41[_0xca4b('0x3b')]=qs[_0xca4b('0x3c')](_0x437e19[_0xca4b('0x31')][_0xca4b('0x3c')]);_0x48eb41[_0xca4b('0x3d')]=qs[_0xca4b('0x33')](_[_0xca4b('0x3e')](_0x437e19['query'],_0x173cde[_0xca4b('0x33')]),_0x253d98);if(_0x437e19[_0xca4b('0x31')]['filter']){_0x48eb41['where']=_[_0xca4b('0x3f')](_0x48eb41[_0xca4b('0x3d')],{'$or':_[_0xca4b('0x2b')](_0x253d98,function(_0x988ef2){if(_0x988ef2['type']!==_0xca4b('0x40')){var _0xb52161={};_0xb52161[_0x988ef2[_0xca4b('0x28')]]={'$like':'%'+_0x437e19['query']['filter']+'%'};return _0xb52161;}})});}_0x48eb41=_[_0xca4b('0x3f')]({},_0x48eb41,_0x437e19[_0xca4b('0x41')]);var _0x102264={'where':_0x48eb41[_0xca4b('0x3d')]};return db[_0xca4b('0x2c')][_0xca4b('0x1b')](_0x102264)['then'](function(_0x59e01d){_0x1bcfc6['count']=_0x59e01d;if(_0x437e19[_0xca4b('0x31')][_0xca4b('0x42')]){_0x48eb41[_0xca4b('0x43')]=[{'all':!![]}];}return db[_0xca4b('0x2c')][_0xca4b('0x44')](_0x48eb41);})[_0xca4b('0x21')](function(_0x2fe7c5){_0x1bcfc6['rows']=_0x2fe7c5;return _0x1bcfc6;})[_0xca4b('0x21')](respondWithFilteredResult(_0x47510d,_0x48eb41))[_0xca4b('0x45')](handleError(_0x47510d,null));};exports[_0xca4b('0x46')]=function(_0x15678c,_0x14e0d6){var _0x5bed72={'raw':!![],'where':{'id':_0x15678c[_0xca4b('0x47')]['id']}},_0xfe54c6={};_0xfe54c6[_0xca4b('0x30')]=_['keys'](db[_0xca4b('0x2c')]['rawAttributes']);_0xfe54c6[_0xca4b('0x31')]=_[_0xca4b('0x32')](_0x15678c[_0xca4b('0x31')]);_0xfe54c6[_0xca4b('0x33')]=_[_0xca4b('0x34')](_0xfe54c6[_0xca4b('0x30')],_0xfe54c6[_0xca4b('0x31')]);_0x5bed72[_0xca4b('0x35')]=_[_0xca4b('0x34')](_0xfe54c6[_0xca4b('0x30')],qs[_0xca4b('0x36')](_0x15678c[_0xca4b('0x31')][_0xca4b('0x36')]));_0x5bed72[_0xca4b('0x35')]=_0x5bed72[_0xca4b('0x35')]['length']?_0x5bed72[_0xca4b('0x35')]:_0xfe54c6['model'];if(_0x15678c[_0xca4b('0x31')][_0xca4b('0x42')]){_0x5bed72[_0xca4b('0x43')]=[{'all':!![]}];}_0x5bed72=_[_0xca4b('0x3f')]({},_0x5bed72,_0x15678c['options']);return db[_0xca4b('0x2c')][_0xca4b('0x48')](_0x5bed72)[_0xca4b('0x21')](handleEntityNotFound(_0x14e0d6,null))['then'](respondWithResult(_0x14e0d6,null))[_0xca4b('0x45')](handleError(_0x14e0d6,null));};exports[_0xca4b('0x49')]=function(_0x1713d0,_0x4d77f8){return db[_0xca4b('0x2c')][_0xca4b('0x49')](_0x1713d0['body'],{})[_0xca4b('0x21')](function(_0x257cef){var _0x5cf6ba=_0x1713d0[_0xca4b('0x4a')]['get']({'plain':!![]});if(!_0x5cf6ba)throw new Error(_0xca4b('0x4b'));if(_0x5cf6ba[_0xca4b('0x4c')]===_0xca4b('0x4a')){var _0x1609e3=_0x257cef[_0xca4b('0x23')]({'plain':!![]});var _0x1c505=_0xca4b('0x4d');return db[_0xca4b('0x4e')][_0xca4b('0x48')]({'where':{'name':_0x1c505,'userProfileId':_0x5cf6ba[_0xca4b('0x4f')]},'raw':!![]})[_0xca4b('0x21')](function(_0x576c3d){if(_0x576c3d&&_0x576c3d[_0xca4b('0x50')]===0x0){return db[_0xca4b('0x24')][_0xca4b('0x49')]({'name':_0x1609e3[_0xca4b('0x28')],'resourceId':_0x1609e3['id'],'type':_0x576c3d[_0xca4b('0x28')],'sectionId':_0x576c3d['id']},{})[_0xca4b('0x21')](function(){return _0x257cef;});}else{return _0x257cef;}})[_0xca4b('0x45')](function(_0x5d0cde){logger['error'](_0xca4b('0x51'),_0x5d0cde);throw _0x5d0cde;});}return _0x257cef;})[_0xca4b('0x21')](respondWithResult(_0x4d77f8,0xc9))[_0xca4b('0x45')](handleError(_0x4d77f8,null));};exports[_0xca4b('0x20')]=function(_0xad5421,_0x2171d7){if(_0xad5421[_0xca4b('0x52')]['id']){delete _0xad5421[_0xca4b('0x52')]['id'];}return db['Variable'][_0xca4b('0x48')]({'where':{'id':_0xad5421['params']['id']}})[_0xca4b('0x21')](handleEntityNotFound(_0x2171d7,null))[_0xca4b('0x21')](saveUpdates(_0xad5421['body'],null))[_0xca4b('0x21')](respondWithResult(_0x2171d7,null))[_0xca4b('0x45')](handleError(_0x2171d7,null));};exports[_0xca4b('0x22')]=function(_0x526d88,_0x487186){return db[_0xca4b('0x2c')][_0xca4b('0x48')]({'where':{'id':_0x526d88[_0xca4b('0x47')]['id']}})[_0xca4b('0x21')](handleEntityNotFound(_0x487186,null))[_0xca4b('0x21')](removeEntity(_0x487186,null))['catch'](handleError(_0x487186,null));};