s3Wrapper = require("./s3Wrapper") settings = require("settings-sharelatex") logger = require("logger-sharelatex") FileHandler = require("./FileHandler") LocalFileWriter = require("./LocalFileWriter") metrics = require("./metrics") oneDayInSeconds = 60 * 60 * 24 module.exports = getFile: (req, res)-> metrics.inc "getFile" {key, bucket} = req {format, style} = req.query logger.log key:key, bucket:bucket, format:format, style:style, "reciving request to get file" FileHandler.getFile bucket, key, {format:format,style:style}, (err, fileStream)-> if err? logger.err err:err, key:key, bucket:bucket, format:format, style:style, "problem getting file" res.send 500 else if req.params.cacheWarm logger.log key:key, bucket:bucket, format:format, style:style, "request is only for cache warm so not sending stream" res.send 200 else logger.log key:key, bucket:bucket, format:format, style:style, "sending file to response" fileStream.pipe res insertFile: (req, res)-> metrics.inc "insertFile" {key, bucket} = req logger.log key:key, bucket:bucket, "reciving request to insert file" FileHandler.insertFile bucket, key, req, (err)-> res.send 200 copyFile: (req, res)-> metrics.inc "copyFile" {key, bucket} = req oldProject_id = req.body.source.project_id oldFile_id = req.body.source.file_id logger.log key:key, bucket:bucket, oldProject_id:oldProject_id, oldFile_id:oldFile_id, "reciving request to copy file" s3Wrapper.copyFile bucket, "#{oldProject_id}/#{oldFile_id}", key, (err)-> if err? logger.log err:err, oldProject_id:oldProject_id, oldFile_id:oldFile_id, "something went wrong copying file in s3Wrapper" res.send 500 else res.send 200 deleteFile: (req, res)-> metrics.inc "deleteFile" {key, bucket} = req logger.log key:key, bucket:bucket, "reciving request to delete file" FileHandler.deleteFile bucket, key, (err)-> if err? logger.log err:err, key:key, bucket:bucket, "something went wrong deleting file in s3Wrapper" res.send 500 else res.send 204