Built motion from commit bab6f49e.|2.6.17
[motion2.git] / server / api / plugin / plugin.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 _0xba0a=['extract-zip','archiver','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','socket.io-emitter','./plugin.socket','register','sendStatus','status','json','offset','limit','undefined','set','Content-Range','apply','reject','save','update','destroy','then','Plugins','UserProfileResource','end','error','name','send','map','Plugin','rawAttributes','fieldName','type','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filters','filter','where','merge','options','count','includeAll','include','rows','catch','params','download','find','basename','createWriteStream','warning','code','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','root','join','node_modules/**/*','attachments/**/*','close','existsSync','format','%s.zip','Error\x20while\x20downloading\x20the\x20plugin','info','Temporary\x20file\x20removed','upload','file','filename','extname','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','0777','Invalid\x20plugin\x20structure','lstatSync','isDirectory','manifest.json','readFileSync','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','parameters','html','views','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','admin','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','unlinkSync','Extracted\x20folder\x20removed','server/files/plugins','dirname','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','%s%s','headers','content-length','content-type','statusCode','webhookPost','eml-format','rimraf','fast-json-patch','moment','util','path','ejs','lodash','crypto','jsforce','desk.js','to-csv'];(function(_0x5d5e9d,_0x41d154){var _0x326d71=function(_0x3db0d9){while(--_0x3db0d9){_0x5d5e9d['push'](_0x5d5e9d['shift']());}};_0x326d71(++_0x41d154);}(_0xba0a,0x1d1));var _0xaba0=function(_0x3dff0d,_0x4d59ff){_0x3dff0d=_0x3dff0d-0x0;var _0x352383=_0xba0a[_0x3dff0d];return _0x352383;};'use strict';var emlformat=require(_0xaba0('0x0'));var rimraf=require(_0xaba0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xaba0('0x2'));var rp=require('request-promise');var moment=require(_0xaba0('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xaba0('0x4'));var path=require(_0xaba0('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xaba0('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xaba0('0x7'));var squel=require('squel');var crypto=require(_0xaba0('0x8'));var jsforce=require(_0xaba0('0x9'));var deskjs=require(_0xaba0('0xa'));var toCsv=require(_0xaba0('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var extract=require(_0xaba0('0xc'));var rimraf=require('rimraf');var archiver=require(_0xaba0('0xd'));var Redis=require(_0xaba0('0xe'));var authService=require(_0xaba0('0xf'));var qs=require(_0xaba0('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xaba0('0x11'));var logger=require(_0xaba0('0x12'))(_0xaba0('0x13'));var utils=require('../../config/utils');var config=require(_0xaba0('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xaba0('0x15'))['db'];config[_0xaba0('0x16')]=_['defaults'](config[_0xaba0('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0xaba0('0x17'))(new Redis(config['redis']));require(_0xaba0('0x18'))[_0xaba0('0x19')](socket);function respondWithStatusCode(_0xbfd9c0,_0x1e7222){_0x1e7222=_0x1e7222||0xcc;return function(_0x26f654){if(_0x26f654){return _0xbfd9c0[_0xaba0('0x1a')](_0x1e7222);}return _0xbfd9c0[_0xaba0('0x1b')](_0x1e7222)['end']();};}function respondWithResult(_0x1d4ae6,_0x6acf58){_0x6acf58=_0x6acf58||0xc8;return function(_0x220831){if(_0x220831){return _0x1d4ae6[_0xaba0('0x1b')](_0x6acf58)[_0xaba0('0x1c')](_0x220831);}};}function respondWithFilteredResult(_0x1a754c,_0x8cfd0f){return function(_0x14516d){if(_0x14516d){var _0x674067=typeof _0x8cfd0f[_0xaba0('0x1d')]==='undefined'&&typeof _0x8cfd0f[_0xaba0('0x1e')]===_0xaba0('0x1f');var _0x4d156f=_0x14516d['count'];var _0x509712=_0x674067?0x0:_0x8cfd0f[_0xaba0('0x1d')];var _0x29b48e=_0x674067?_0x14516d['count']:_0x8cfd0f[_0xaba0('0x1d')]+_0x8cfd0f['limit'];var _0xc3851f;if(_0x29b48e>=_0x4d156f){_0x29b48e=_0x4d156f;_0xc3851f=0xc8;}else{_0xc3851f=0xce;}_0x1a754c[_0xaba0('0x1b')](_0xc3851f);return _0x1a754c[_0xaba0('0x20')](_0xaba0('0x21'),_0x509712+'-'+_0x29b48e+'/'+_0x4d156f)['json'](_0x14516d);}return null;};}function patchUpdates(_0xa94caa){return function(_0x457ad8){try{jsonpatch[_0xaba0('0x22')](_0x457ad8,_0xa94caa,!![]);}catch(_0x3f6950){return BPromise[_0xaba0('0x23')](_0x3f6950);}return _0x457ad8[_0xaba0('0x24')]();};}function saveUpdates(_0x350a41,_0x137c2e){return function(_0x1a63f7){if(_0x1a63f7){return _0x1a63f7[_0xaba0('0x25')](_0x350a41)['then'](function(_0x5bde33){return _0x5bde33;});}return null;};}function removeEntity(_0x59b3e1,_0x42ce35){return function(_0x543978){if(_0x543978){return _0x543978[_0xaba0('0x26')]()[_0xaba0('0x27')](function(){var _0x6dbb2b=_0x543978['get']({'plain':!![]});var _0x4dce44=_0xaba0('0x28');return db[_0xaba0('0x29')][_0xaba0('0x26')]({'where':{'type':_0x4dce44,'resourceId':_0x6dbb2b['id']}})[_0xaba0('0x27')](function(){return _0x543978;});})['then'](function(){_0x59b3e1[_0xaba0('0x1b')](0xcc)[_0xaba0('0x2a')]();});}};}function handleEntityNotFound(_0x2e3721,_0x239244){return function(_0x4f7930){if(!_0x4f7930){_0x2e3721['sendStatus'](0x194);}return _0x4f7930;};}function handleError(_0x2b81ef,_0x419b31){_0x419b31=_0x419b31||0x1f4;return function(_0x4433d8){logger[_0xaba0('0x2b')](_0x4433d8['stack']);if(_0x4433d8[_0xaba0('0x2c')]){delete _0x4433d8['name'];}_0x2b81ef[_0xaba0('0x1b')](_0x419b31)[_0xaba0('0x2d')](_0x4433d8);};}exports['index']=function(_0x59546b,_0x264b52){var _0x15a275={},_0x1ec23c={},_0x547a79={'count':0x0,'rows':[]};var _0x182aaf=_[_0xaba0('0x2e')](db[_0xaba0('0x2f')][_0xaba0('0x30')],function(_0xafd2ae){return{'name':_0xafd2ae[_0xaba0('0x31')],'type':_0xafd2ae[_0xaba0('0x32')]['key']};});_0x1ec23c[_0xaba0('0x33')]=_['map'](_0x182aaf,_0xaba0('0x2c'));_0x1ec23c[_0xaba0('0x34')]=_[_0xaba0('0x35')](_0x59546b[_0xaba0('0x34')]);_0x1ec23c['filters']=_['intersection'](_0x1ec23c[_0xaba0('0x33')],_0x1ec23c[_0xaba0('0x34')]);_0x15a275[_0xaba0('0x36')]=_[_0xaba0('0x37')](_0x1ec23c[_0xaba0('0x33')],qs['fields'](_0x59546b['query'][_0xaba0('0x38')]));_0x15a275['attributes']=_0x15a275[_0xaba0('0x36')][_0xaba0('0x39')]?_0x15a275[_0xaba0('0x36')]:_0x1ec23c['model'];if(!_0x59546b[_0xaba0('0x34')][_0xaba0('0x3a')](_0xaba0('0x3b'))){_0x15a275['limit']=qs['limit'](_0x59546b[_0xaba0('0x34')][_0xaba0('0x1e')]);_0x15a275[_0xaba0('0x1d')]=qs[_0xaba0('0x1d')](_0x59546b[_0xaba0('0x34')][_0xaba0('0x1d')]);}_0x15a275[_0xaba0('0x3c')]=qs[_0xaba0('0x3d')](_0x59546b[_0xaba0('0x34')]['sort']);_0x15a275['where']=qs['filters'](_[_0xaba0('0x3e')](_0x59546b['query'],_0x1ec23c[_0xaba0('0x3f')]),_0x182aaf);if(_0x59546b['query'][_0xaba0('0x40')]){_0x15a275[_0xaba0('0x41')]=_[_0xaba0('0x42')](_0x15a275[_0xaba0('0x41')],{'$or':_['map'](_0x182aaf,function(_0x13ca86){if(_0x13ca86[_0xaba0('0x32')]!=='VIRTUAL'){var _0x5be4b2={};_0x5be4b2[_0x13ca86['name']]={'$like':'%'+_0x59546b['query'][_0xaba0('0x40')]+'%'};return _0x5be4b2;}})});}_0x15a275=_['merge']({},_0x15a275,_0x59546b[_0xaba0('0x43')]);var _0xfa36ea={'where':_0x15a275[_0xaba0('0x41')]};return db[_0xaba0('0x2f')][_0xaba0('0x44')](_0xfa36ea)['then'](function(_0x575365){_0x547a79[_0xaba0('0x44')]=_0x575365;if(_0x59546b['query'][_0xaba0('0x45')]){_0x15a275[_0xaba0('0x46')]=[{'all':!![]}];}return db[_0xaba0('0x2f')]['findAll'](_0x15a275);})['then'](function(_0x2c431e){_0x547a79[_0xaba0('0x47')]=_0x2c431e;return _0x547a79;})['then'](respondWithFilteredResult(_0x264b52,_0x15a275))[_0xaba0('0x48')](handleError(_0x264b52,null));};exports['show']=function(_0xefb9e7,_0x597493){var _0x1debcf={'raw':!![],'where':{'id':_0xefb9e7[_0xaba0('0x49')]['id']}},_0x3e2c01={};_0x3e2c01[_0xaba0('0x33')]=_[_0xaba0('0x35')](db[_0xaba0('0x2f')][_0xaba0('0x30')]);_0x3e2c01[_0xaba0('0x34')]=_[_0xaba0('0x35')](_0xefb9e7[_0xaba0('0x34')]);_0x3e2c01[_0xaba0('0x3f')]=_['intersection'](_0x3e2c01[_0xaba0('0x33')],_0x3e2c01['query']);_0x1debcf['attributes']=_[_0xaba0('0x37')](_0x3e2c01[_0xaba0('0x33')],qs[_0xaba0('0x38')](_0xefb9e7[_0xaba0('0x34')][_0xaba0('0x38')]));_0x1debcf[_0xaba0('0x36')]=_0x1debcf[_0xaba0('0x36')]['length']?_0x1debcf[_0xaba0('0x36')]:_0x3e2c01[_0xaba0('0x33')];if(_0xefb9e7[_0xaba0('0x34')][_0xaba0('0x45')]){_0x1debcf['include']=[{'all':!![]}];}_0x1debcf=_[_0xaba0('0x42')]({},_0x1debcf,_0xefb9e7['options']);return db[_0xaba0('0x2f')]['find'](_0x1debcf)['then'](handleEntityNotFound(_0x597493,null))[_0xaba0('0x27')](respondWithResult(_0x597493,null))[_0xaba0('0x48')](handleError(_0x597493,null));};exports[_0xaba0('0x4a')]=function(_0x50013b,_0x1d1723,_0x39fa5b){return db[_0xaba0('0x2f')][_0xaba0('0x4b')]({'where':{'id':_0x50013b['params']['id']},'attributes':[_0xaba0('0x2c'),_0xaba0('0x5')],'raw':!![]})[_0xaba0('0x27')](handleEntityNotFound(_0x1d1723,null))['then'](function(_0x730ca2){if(_0x730ca2){var _0x4ab302=path['join'](config['root'],'server/files/plugins',util['format']('%s.zip',path[_0xaba0('0x4c')](_0x730ca2[_0xaba0('0x5')])));var _0x3c0a07=fs[_0xaba0('0x4d')](_0x4ab302);var _0x27cf4d=archiver('zip',{'zlib':{'level':0x9}});_0x27cf4d['on'](_0xaba0('0x4e'),function(_0x3d71e4){if(_0x3d71e4[_0xaba0('0x4f')]==='ENOENT'){logger[_0xaba0('0x2b')](_0x3d71e4);}else{throw new db[(_0xaba0('0x50'))][(_0xaba0('0x51'))](_0xaba0('0x52'));}});_0x27cf4d['on']('error',function(_0x3b6983){throw new db[(_0xaba0('0x50'))][(_0xaba0('0x51'))](_0xaba0('0x52'));});_0x27cf4d[_0xaba0('0x53')](_0x3c0a07);_0x27cf4d[_0xaba0('0x54')](_0xaba0('0x55'),{'cwd':path['join'](config[_0xaba0('0x56')],'server/files/plugins',path['dirname'](_0x730ca2[_0xaba0('0x5')])),'ignore':[path[_0xaba0('0x57')](path[_0xaba0('0x4c')](_0x730ca2[_0xaba0('0x5')]),_0xaba0('0x58')),path[_0xaba0('0x57')](path[_0xaba0('0x4c')](_0x730ca2[_0xaba0('0x5')]),_0xaba0('0x59'))],'nodir':!![]})['finalize']();_0x3c0a07['on'](_0xaba0('0x5a'),function(){if(!fs[_0xaba0('0x5b')](_0x4ab302)){throw new db['Sequelize'][(_0xaba0('0x51'))]('Plugin\x20not\x20found');}return _0x1d1723[_0xaba0('0x4a')](_0x4ab302,util[_0xaba0('0x5c')](_0xaba0('0x5d'),path[_0xaba0('0x4c')](_0x730ca2['path'])),function(_0x1d9d1c){if(_0x1d9d1c){throw new db[(_0xaba0('0x50'))][(_0xaba0('0x51'))](_0xaba0('0x5e'));}fs['unlinkSync'](_0x4ab302);logger['info']('Download\x20completed');logger[_0xaba0('0x5f')](_0xaba0('0x60'));});});}return null;})[_0xaba0('0x48')](handleError(_0x1d1723,null));};exports[_0xaba0('0x61')]=function(_0x343ff0,_0x5bee6d,_0x3e3d37){var _0x5c85ed=path[_0xaba0('0x4c')](_0x343ff0[_0xaba0('0x62')][_0xaba0('0x63')],path[_0xaba0('0x64')](_0x343ff0['file'][_0xaba0('0x63')]));var _0x45f31f=path[_0xaba0('0x57')](config[_0xaba0('0x56')],'server/files/plugins',_0x343ff0[_0xaba0('0x62')]['filename']);var _0x1082cf=path[_0xaba0('0x57')](config['root'],'server/files/plugins',_0x5c85ed);logger[_0xaba0('0x5f')](_0xaba0('0x65'),_0x45f31f);logger[_0xaba0('0x5f')](_0xaba0('0x66'),_0x1082cf);try{fs['chmodSync'](_0x45f31f,parseInt(_0xaba0('0x67'),0x8));extract(_0x45f31f,{'dir':_0x1082cf},function(_0x321849){if(_0x321849){logger[_0xaba0('0x2b')](_0x321849);handleError(_0x321849,!![]);};var _0x32ae6b=fs['readdirSync'](_0x1082cf);if(_0x32ae6b[_0xaba0('0x39')]>0x1){removeReferences(_0x45f31f,_0x1082cf);logger['error']('Invalid\x20plugin\x20structure');return _0x3e3d37(new Error(_0xaba0('0x68')));}var _0x343079=fs[_0xaba0('0x69')](path[_0xaba0('0x57')](_0x1082cf,_0x32ae6b[0x0]));if(_0x343079['isFile']()){removeReferences(_0x45f31f,_0x1082cf);logger[_0xaba0('0x2b')](_0xaba0('0x68'));return _0x3e3d37(new Error(_0xaba0('0x68')));}if(_0x343079[_0xaba0('0x6a')]()){var _0x381afb=fs['readdirSync'](path[_0xaba0('0x57')](_0x1082cf,_0x32ae6b[0x0]));if(_0x381afb[_0xaba0('0x39')]===0x0){removeReferences(_0x45f31f,_0x1082cf);logger[_0xaba0('0x2b')](_0xaba0('0x68'));return _0x3e3d37(new Error(_0xaba0('0x68')));}var _0x37363c=_0x381afb['some'](function(_0x240647){return _0x240647===_0xaba0('0x6b');});if(!_0x37363c){return _0x3e3d37(new Error('Plugin\x20manifest\x20missing'));}var _0x2a1c71=fs[_0xaba0('0x6c')](path[_0xaba0('0x57')](_0x1082cf,_0x32ae6b[0x0],'manifest.json'));var _0x444038=JSON[_0xaba0('0x6d')](_0x2a1c71);if(_0xaba0('0x1f')==typeof _0x444038[_0xaba0('0x2c')]){return _0x3e3d37(new Error(_0xaba0('0x6e')));}if(_0xaba0('0x1f')==typeof _0x444038['type']){return _0x3e3d37(new Error(_0xaba0('0x6f')));}if(_0xaba0('0x1f')==typeof _0x444038[_0xaba0('0x70')]){return _0x3e3d37(new Error('Invalid\x20manifest:\x20version\x20not\x20specified'));}if('undefined'==typeof _0x444038[_0xaba0('0x71')]){return _0x3e3d37(new Error('Invalid\x20manifest:\x20parameters\x20missing'));}if(_0x444038['type']===_0xaba0('0x72')){if(_0xaba0('0x1f')==typeof _0x444038[_0xaba0('0x71')][_0xaba0('0x73')]){return _0x3e3d37(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0xaba0('0x1f')==typeof _0x444038['parameters'][_0xaba0('0x73')]['admin']&&_0xaba0('0x1f')==typeof _0x444038[_0xaba0('0x71')][_0xaba0('0x73')][_0xaba0('0x74')]){return _0x3e3d37(new Error(_0xaba0('0x75')));}}else if(_0x444038[_0xaba0('0x32')]===_0xaba0('0x76')){if('undefined'==typeof _0x444038[_0xaba0('0x71')][_0xaba0('0x77')]){return _0x3e3d37(new Error(_0xaba0('0x78')));}if(_0xaba0('0x1f')==typeof _0x444038['parameters'][_0xaba0('0x79')]){return _0x3e3d37(new Error(_0xaba0('0x7a')));}}else{return _0x3e3d37(new Error(_0xaba0('0x7b')));}var _0x23c3a8=_0x444038[_0xaba0('0x2c')];var _0x4b194d=_0x444038[_0xaba0('0x7c')];var _0x586084=_0x444038[_0xaba0('0x32')];var _0x57051f=_0x444038['sidebar']?_0x444038[_0xaba0('0x7d')]:_0xaba0('0x7e');var _0x201ae7=_0x444038[_0xaba0('0x7f')]?_0x444038['icon']:'icon-apps';var _0xb76993='';var _0x5aaa85='';var _0x365bc0='';var _0x2c75a8='';var _0x5a554e=_0x444038[_0xaba0('0x70')];if(_0x586084==='html'){if('undefined'!=typeof _0x444038['parameters']['views'][_0xaba0('0x80')]){var _0xa7c29e=_0x444038[_0xaba0('0x71')][_0xaba0('0x73')][_0xaba0('0x80')];if(!/^(f|ht)tps?:\/\//i[_0xaba0('0x81')](_0xa7c29e)){_0xb76993=path[_0xaba0('0x57')](_0xaba0('0x82'),_0x5c85ed,_0x32ae6b[0x0],_0xa7c29e);}else{_0xb76993=_0xa7c29e;}}else{logger[_0xaba0('0x5f')](_0xaba0('0x83'));}if('undefined'!=typeof _0x444038[_0xaba0('0x71')]['views']['agent']){var _0xcb3005=_0x444038[_0xaba0('0x71')]['views'][_0xaba0('0x74')];if(!/^(f|ht)tps?:\/\//i[_0xaba0('0x81')](_0xcb3005)){_0x5aaa85=path[_0xaba0('0x57')](_0xaba0('0x82'),_0x5c85ed,_0x32ae6b[0x0],_0xcb3005);}else{_0x5aaa85=_0xcb3005;}}else{logger['info'](_0xaba0('0x84'));}}else if(_0x586084===_0xaba0('0x76')){_0x365bc0=_0x444038[_0xaba0('0x71')]['scriptName'];_0x2c75a8=_0x444038[_0xaba0('0x71')][_0xaba0('0x79')];if(_0xaba0('0x1f')!=typeof _0x444038[_0xaba0('0x71')][_0xaba0('0x73')]){if(_0xaba0('0x1f')!=typeof _0x444038[_0xaba0('0x71')][_0xaba0('0x73')][_0xaba0('0x80')]){var _0xa7c29e=_0x444038[_0xaba0('0x71')][_0xaba0('0x73')][_0xaba0('0x80')];if(!/^(f|ht)tps?:\/\//i[_0xaba0('0x81')](_0xa7c29e)){_0xb76993=path[_0xaba0('0x57')](_0xaba0('0x82'),_0x5c85ed,_0x32ae6b[0x0],_0xa7c29e);}else{_0xb76993=_0xa7c29e;}}if('undefined'!=typeof _0x444038[_0xaba0('0x71')][_0xaba0('0x73')]['agent']){var _0xcb3005=_0x444038[_0xaba0('0x71')][_0xaba0('0x73')][_0xaba0('0x74')];if(!/^(f|ht)tps?:\/\//i[_0xaba0('0x81')](_0xcb3005)){_0x5aaa85=path[_0xaba0('0x57')]('plugins',_0x5c85ed,_0x32ae6b[0x0],_0xcb3005);}else{_0x5aaa85=_0xcb3005;}}}}var _0x4ed67b={'name':_0x23c3a8,'description':_0x4b194d,'path':path[_0xaba0('0x57')](_0x5c85ed,_0x32ae6b[0x0]),'type':_0x586084,'sidebar':_0x57051f,'icon':_0x201ae7,'adminUrl':_0xb76993,'agentUrl':_0x5aaa85,'scriptName':_0x365bc0,'scriptPath':_0x2c75a8,'version':_0x5a554e};removeReferences(_0x45f31f,null);return db[_0xaba0('0x2f')]['create'](_0x4ed67b)[_0xaba0('0x27')](function(_0x418651){var _0x24f15b={'role':_0x343ff0[_0xaba0('0x85')]['role'],'userProfileId':_0x343ff0[_0xaba0('0x85')][_0xaba0('0x86')]};if(!_0x24f15b)throw new Error(_0xaba0('0x87'));if(_0x24f15b['role']===_0xaba0('0x88')){var _0x1bfd66=_0x418651['get']({'plain':!![]});return db[_0xaba0('0x89')]['find']({'where':{'name':_0xaba0('0x28'),'userProfileId':_0x24f15b[_0xaba0('0x86')]},'raw':!![]})[_0xaba0('0x27')](function(_0xb2d390){if(_0xb2d390&&_0xb2d390['autoAssociation']===0x0){return db[_0xaba0('0x29')][_0xaba0('0x8a')]({'name':_0x1bfd66['name'],'resourceId':_0x1bfd66['id'],'type':_0xb2d390['name'],'sectionId':_0xb2d390['id']},{})['then'](function(){return _0x418651;});}else{return _0x418651;}})[_0xaba0('0x48')](function(_0x4fbaa7){logger[_0xaba0('0x2b')](_0xaba0('0x8b'),_0x4fbaa7);throw _0x4fbaa7;});}return _0x418651;})['then'](respondWithResult(_0x5bee6d,null))[_0xaba0('0x48')](handleError(_0x5bee6d,null));}});}catch(_0x100d84){_0x5bee6d['status'](0x1f4)[_0xaba0('0x2d')](_0x100d84);}};function removeReferences(_0x50559f,_0x5bf23c){try{if(_0x50559f){fs[_0xaba0('0x8c')](_0x50559f);logger[_0xaba0('0x5f')]('Zip\x20archive\x20removed');}if(_0x5bf23c){rimraf(_0x5bf23c,function(){});logger[_0xaba0('0x5f')](_0xaba0('0x8d'));}}catch(_0x50673a){logger[_0xaba0('0x2b')](_0x50673a);}}exports[_0xaba0('0x25')]=function(_0x304db9,_0x3f8da5,_0x489798){return db[_0xaba0('0x2f')][_0xaba0('0x4b')]({'where':{'id':_0x304db9[_0xaba0('0x49')]['id']}})[_0xaba0('0x27')](handleEntityNotFound(_0x3f8da5,null))[_0xaba0('0x27')](saveUpdates(_0x304db9[_0xaba0('0x85')],null))[_0xaba0('0x27')](respondWithResult(_0x3f8da5,null))['catch'](handleError(_0x3f8da5,null));};exports['delete']=function(_0x20f1d7,_0x592bf8,_0x141a9a){return db[_0xaba0('0x2f')]['find']({'where':{'id':_0x20f1d7[_0xaba0('0x49')]['id']}})[_0xaba0('0x27')](function(_0xe2299d){if(_0xe2299d){return _0xe2299d[_0xaba0('0x26')]();}})[_0xaba0('0x27')](function(_0x2145a2){rimraf(path['join'](config[_0xaba0('0x56')],_0xaba0('0x8e'),path[_0xaba0('0x8f')](_0x2145a2['path'])),function(){});return _0x2145a2;})[_0xaba0('0x27')](handleEntityNotFound(_0x592bf8,null))[_0xaba0('0x27')](respondWithStatusCode(_0x592bf8,null))[_0xaba0('0x48')](handleError(_0x592bf8,null));};exports[_0xaba0('0x90')]=function(_0x18df96,_0x258cf3,_0x3d87af){return BPromise[_0xaba0('0x91')]()['then'](function(){if(!_0x18df96['query'][_0xaba0('0x5')]){throw new Error(_0xaba0('0x92'));}if(!_0x18df96['query'][_0xaba0('0x93')]){throw new Error(_0xaba0('0x94'));}var _0x50cba2=_0x18df96['query'][_0xaba0('0x95')]?_0x18df96['query'][_0xaba0('0x95')]+':'+_0x18df96[_0xaba0('0x34')][_0xaba0('0x93')]:_0xaba0('0x96')+_0x18df96[_0xaba0('0x34')][_0xaba0('0x93')];var _0x3277c6=_0x18df96['query'][_0xaba0('0x1c')]?_0x18df96[_0xaba0('0x34')][_0xaba0('0x1c')]:!![];var _0xd8992a=_0x18df96[_0xaba0('0x34')]['encoding']?_0x18df96['query'][_0xaba0('0x97')]:null;var _0x1f03c3={'method':_0x18df96[_0xaba0('0x98')],'uri':util[_0xaba0('0x5c')](_0xaba0('0x99'),_0x50cba2,_0x18df96[_0xaba0('0x34')][_0xaba0('0x5')]),'json':_0x3277c6,'resolveWithFullResponse':!![],'encoding':_0xd8992a,'qs':_0x18df96[_0xaba0('0x34')]};if(_0x18df96[_0xaba0('0x9a')]){_0x1f03c3[_0xaba0('0x9a')]=_0x18df96[_0xaba0('0x9a')];if(_0x1f03c3[_0xaba0('0x9a')][_0xaba0('0x9b')]){delete _0x1f03c3[_0xaba0('0x9a')][_0xaba0('0x9b')];}}if(_0x1f03c3['headers']['content-type']){delete _0x1f03c3['headers'][_0xaba0('0x9c')];}return rp(_0x1f03c3);})[_0xaba0('0x27')](function(_0x36687c){if(_0x36687c){_0x258cf3['set'](_0x36687c[_0xaba0('0x9a')]);logger[_0xaba0('0x5f')](_0x36687c[_0xaba0('0x85')]);if(_['endsWith'](_0x18df96[_0xaba0('0x34')][_0xaba0('0x5')],_0xaba0('0x4a'))&&_0x36687c['statusCode']==0x1f4){return _0x258cf3['sendStatus'](_0x36687c[_0xaba0('0x9d')]);}else{return _0x258cf3[_0xaba0('0x1b')](_0x36687c[_0xaba0('0x9d')])[_0xaba0('0x2d')](_0x36687c['body']);}}else{return _0x258cf3[_0xaba0('0x1a')](0xc8);}})[_0xaba0('0x48')](handleError(_0x258cf3,null));};exports[_0xaba0('0x9e')]=function(_0x1f03e9,_0x20977f,_0x51afae){return BPromise[_0xaba0('0x91')]()[_0xaba0('0x27')](function(){if(!_0x1f03e9[_0xaba0('0x34')][_0xaba0('0x5')]){throw new Error(_0xaba0('0x92'));}if(!_0x1f03e9[_0xaba0('0x34')][_0xaba0('0x93')]){throw new Error(_0xaba0('0x94'));}var _0x9a2458=_0x1f03e9[_0xaba0('0x34')][_0xaba0('0x95')]?_0x1f03e9['query'][_0xaba0('0x95')]+':'+_0x1f03e9[_0xaba0('0x34')][_0xaba0('0x93')]:_0xaba0('0x96')+_0x1f03e9[_0xaba0('0x34')][_0xaba0('0x93')];var _0x18dbe7=_0x1f03e9['query'][_0xaba0('0x1c')]?_0x1f03e9[_0xaba0('0x34')][_0xaba0('0x1c')]:!![];var _0x384f31=_0x1f03e9[_0xaba0('0x34')][_0xaba0('0x97')]?_0x1f03e9['query'][_0xaba0('0x97')]:null;var _0x2bfcd5={'method':_0x1f03e9[_0xaba0('0x98')],'uri':util[_0xaba0('0x5c')]('%s%s',_0x9a2458,_0x1f03e9[_0xaba0('0x34')][_0xaba0('0x5')]),'json':_0x18dbe7,'resolveWithFullResponse':!![],'encoding':_0x384f31,'body':_0x1f03e9[_0xaba0('0x85')]};if(_0x1f03e9[_0xaba0('0x9a')]){_0x2bfcd5[_0xaba0('0x9a')]=_0x1f03e9['headers'];if(_0x2bfcd5[_0xaba0('0x9a')][_0xaba0('0x9b')]){delete _0x2bfcd5[_0xaba0('0x9a')]['content-length'];}}if(_0x2bfcd5[_0xaba0('0x9a')][_0xaba0('0x9c')]){delete _0x2bfcd5['headers']['content-type'];}return rp(_0x2bfcd5);})[_0xaba0('0x27')](function(_0x1cad32){if(_0x1cad32){_0x20977f[_0xaba0('0x20')](_0x1cad32[_0xaba0('0x9a')]);logger[_0xaba0('0x5f')](_0x1cad32[_0xaba0('0x85')]);return _0x20977f[_0xaba0('0x1b')](_0x1cad32[_0xaba0('0x9d')])[_0xaba0('0x2d')](_0x1cad32['body']);}else{return _0x20977f[_0xaba0('0x1a')](0xc8);}})['catch'](handleError(_0x20977f,null));};