/* eslint-disable no-unused-vars, */ // TODO: This file was created by bulk-decaffeinate. // Fix any style issues and re-enable lint. /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ let BucketController; const settings = require("settings-sharelatex"); const logger = require("logger-sharelatex"); const FileHandler = require("./FileHandler"); const metrics = require("metrics-sharelatex"); const Errors = require('./Errors'); module.exports = (BucketController = { getFile(req, res){ const {bucket} = req.params; const key = req.params[0]; const credentials = settings.filestore.s3BucketCreds != null ? settings.filestore.s3BucketCreds[bucket] : undefined; const options = { key, bucket, credentials }; metrics.inc(`${bucket}.getFile`); logger.log({key, bucket}, "receiving request to get file from bucket"); return FileHandler.getFile(bucket, key, options, function(err, fileStream){ if (err != null) { logger.err({err, key, bucket}, "problem getting file from bucket"); if (err instanceof Errors.NotFoundError) { return res.send(404); } else { return res.send(500); } } else { logger.log({key, bucket}, "sending bucket file to response"); return fileStream.pipe(res); } }); } });