Initial open source commit
This commit is contained in:
40
app/coffee/CompileController.coffee
Normal file
40
app/coffee/CompileController.coffee
Normal file
@@ -0,0 +1,40 @@
|
||||
RequestParser = require "./RequestParser"
|
||||
CompileManager = require "./CompileManager"
|
||||
Settings = require "settings-sharelatex"
|
||||
Metrics = require "./Metrics"
|
||||
ProjectPersistenceManager = require "./ProjectPersistenceManager"
|
||||
logger = require "logger-sharelatex"
|
||||
|
||||
module.exports = CompileController =
|
||||
compile: (req, res, next = (error) ->) ->
|
||||
timer = new Metrics.Timer("compile-request")
|
||||
RequestParser.parse req.body, (error, request) ->
|
||||
return next(error) if error?
|
||||
request.project_id = req.params.project_id
|
||||
ProjectPersistenceManager.markProjectAsJustAccessed request.project_id, (error) ->
|
||||
return next(error) if error?
|
||||
CompileManager.doCompile request, (error, outputFiles = []) ->
|
||||
if error?
|
||||
logger.error err: error, project_id: request.project_id, "error running compile"
|
||||
error = error.message or error
|
||||
status = "failure"
|
||||
else
|
||||
status = "failure"
|
||||
for file in outputFiles
|
||||
if file.type == "pdf"
|
||||
status = "success"
|
||||
|
||||
timer.done()
|
||||
res.send JSON.stringify {
|
||||
compile:
|
||||
status: status
|
||||
error: error
|
||||
outputFiles: outputFiles.map (file) ->
|
||||
url: "#{Settings.apis.clsi.url}/project/#{request.project_id}/output/#{file.path}"
|
||||
type: file.type
|
||||
}
|
||||
|
||||
clearCache: (req, res, next = (error) ->) ->
|
||||
ProjectPersistenceManager.clearProject req.params.project_id, (error) ->
|
||||
return next(error) if error?
|
||||
res.send 204 # No content
|
||||
Reference in New Issue
Block a user