2014-02-12 10:23:40 +00:00
|
|
|
User = require('../models/User').User
|
|
|
|
Project = require('../models/Project').Project
|
2014-03-31 15:46:28 +00:00
|
|
|
sanitize = require('sanitizer')
|
2014-02-12 10:23:40 +00:00
|
|
|
path = require "path"
|
|
|
|
logger = require('logger-sharelatex')
|
|
|
|
_ = require('underscore')
|
|
|
|
fs = require('fs')
|
|
|
|
SecurityManager = require '../managers/SecurityManager'
|
|
|
|
Settings = require('settings-sharelatex')
|
|
|
|
projectCreationHandler = require '../Features/Project/ProjectCreationHandler'
|
|
|
|
projectDuplicator = require('../Features/Project/ProjectDuplicator')
|
2014-04-07 12:47:10 +00:00
|
|
|
projectDeleter = require("../Features/Project/ProjectDeleter")
|
2014-02-12 10:23:40 +00:00
|
|
|
ProjectZipStreamManager = require '../Features/Downloads/ProjectZipStreamManager'
|
|
|
|
metrics = require('../infrastructure/Metrics')
|
|
|
|
TagsHandler = require('../Features/Tags/TagsHandler')
|
|
|
|
SubscriptionLocator = require("../Features/Subscription/SubscriptionLocator")
|
|
|
|
SubscriptionFormatters = require("../Features/Subscription/SubscriptionFormatters")
|
|
|
|
FileStoreHandler = require("../Features/FileStore/FileStoreHandler")
|
|
|
|
|
|
|
|
module.exports = class ProjectController
|
2014-04-04 16:08:14 +00:00
|
|
|
constructor: ()->
|
2014-02-12 10:23:40 +00:00
|
|
|
|
|
|
|
|
|
|
|
startBufferingRequest: (req, res, next) ->
|
|
|
|
req.bufferedChunks = []
|
|
|
|
req.endEmitted = false
|
|
|
|
bufferChunk = (chunk) -> req.bufferedChunks.push(chunk)
|
|
|
|
req.on "data", bufferChunk
|
|
|
|
endCallback = () -> req.endEmitted = true
|
|
|
|
req.on "end", endCallback
|
|
|
|
req.emitBufferedData = () ->
|
|
|
|
logger.log chunks: @bufferedChunks.length, emittedEnd: @endEmitted, "emitting buffer chunks"
|
|
|
|
@removeListener "data", bufferChunk
|
|
|
|
while @bufferedChunks.length > 0
|
|
|
|
@emit "data", @bufferedChunks.shift()
|
|
|
|
@removeListener "end", endCallback
|
|
|
|
@emit "end" if @endEmitted
|
|
|
|
next()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|