overleaf/services/filestore/app/coffee/KeyBuilder.coffee

46 lines
1.2 KiB
CoffeeScript
Raw Normal View History

2014-02-14 16:39:05 +00:00
settings = require("settings-sharelatex")
module.exports =
getConvertedFolderKey: (key)->
key = "#{key}-converted-cache/"
addCachingToKey: (key, opts)->
key = @getConvertedFolderKey(key)
if opts.format? and !opts.style?
key = "#{key}format-#{opts.format}"
if opts.style? and !opts.format?
key = "#{key}style-#{opts.style}"
if opts.style? and opts.format?
key = "#{key}format-#{opts.format}-style-#{opts.style}"
return key
userFileKey: (req, res, next)->
{project_id, file_id} = req.params
req.key = "#{project_id}/#{file_id}"
req.bucket = settings.filestore.stores.user_files
2014-02-14 16:39:05 +00:00
next()
2015-05-08 14:15:48 +00:00
publicFileKey: (req, res, next)->
{project_id, public_file_id} = req.params
if not settings.filestore.stores.public_files?
res.status(501).send("public files not available")
else
req.key = "#{project_id}/#{public_file_id}"
req.bucket = settings.filestore.stores.public_files
next()
2014-02-14 16:39:05 +00:00
templateFileKey: (req, res, next)->
{template_id, format, version, sub_type} = req.params
req.key = "#{template_id}/v/#{version}/#{format}"
if sub_type?
req.key = "#{req.key}/#{sub_type}"
req.bucket = settings.filestore.stores.template_files
2014-02-14 16:39:05 +00:00
req.version = version
opts = req.query
next()