62 lines
1.4 KiB
JavaScript
62 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
const express = require('express');
|
|
const request = require('request');
|
|
const bodyParser = require('body-parser');
|
|
const { expressSetHeaders } = require('./headers.js');
|
|
|
|
// Constants
|
|
const B2_BASE_URL = 'https://api.backblazeb2.com/b2api/v1/';
|
|
|
|
// App
|
|
const app = express();
|
|
app.use(bodyParser.text());
|
|
|
|
app.use(
|
|
express.static('./dist/', {
|
|
dotfiles: 'ignore',
|
|
etag: false,
|
|
index: ['index.html'],
|
|
setHeaders: expressSetHeaders
|
|
})
|
|
);
|
|
|
|
app.get('/api/v1/authorize_account', (req, res) => {
|
|
request(
|
|
{
|
|
url: B2_BASE_URL + 'b2_authorize_account',
|
|
headers: { Authorization: req.get('Authorization') }
|
|
},
|
|
function(error, response, body) {
|
|
res.set(response.headers);
|
|
res.send(body);
|
|
}
|
|
);
|
|
});
|
|
|
|
const POSTRedirect = url => (req, res) => {
|
|
request.post(
|
|
{
|
|
url: req.get('apiUrl') + url,
|
|
headers: { Authorization: req.get('Authorization') },
|
|
body: req.body
|
|
},
|
|
function(error, response, body) {
|
|
res.send(body);
|
|
}
|
|
);
|
|
};
|
|
|
|
app.post('/api/v1/get_upload_url', POSTRedirect('/b2api/v1/b2_get_upload_url'));
|
|
app.post('/api/v1/get_file_info', POSTRedirect('/b2api/v1/b2_get_file_info'));
|
|
app.post('/api/v1/remove_file', POSTRedirect('/b2api/v1/b2_delete_file_version'));
|
|
|
|
module.exports = {
|
|
app: app
|
|
};
|
|
|
|
if (require.main === module) {
|
|
// While this can work in Chrome, it is not ready for prime-time without a security certificate.
|
|
app.listen(8090, '127.0.0.1');
|
|
}
|