| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- User = require('../models/User').User
- Project = require('../models/Project').Project
- sanitize = require('sanitizer')
- 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')
- projectDeleter = require("../Features/Project/ProjectDeleter")
- 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
- constructor: ()->
- 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()
|