'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'); }