From de280d0ed437dddd3d01bb6cb6c3a0fc8bbc3e9f Mon Sep 17 00:00:00 2001 From: James Allen Date: Tue, 19 Jan 2016 14:12:41 +0000 Subject: [PATCH] Support configurable images in wordcount end point --- services/clsi/app/coffee/CompileController.coffee | 4 +++- services/clsi/app/coffee/CompileManager.coffee | 6 +++--- .../clsi/test/unit/coffee/CompileControllerTests.coffee | 5 +++-- services/clsi/test/unit/coffee/CompileManagerTests.coffee | 7 ++++--- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/services/clsi/app/coffee/CompileController.coffee b/services/clsi/app/coffee/CompileController.coffee index f7d46b1305..dd73040958 100644 --- a/services/clsi/app/coffee/CompileController.coffee +++ b/services/clsi/app/coffee/CompileController.coffee @@ -70,8 +70,10 @@ module.exports = CompileController = wordcount: (req, res, next = (error) ->) -> file = req.query.file || "main.tex" project_id = req.params.project_id + image = req.query.image + logger.log {image, file, project_id}, "word count request" - CompileManager.wordcount project_id, file, (error, result) -> + CompileManager.wordcount project_id, file, image, (error, result) -> return next(error) if error? res.send JSON.stringify { texcount: result diff --git a/services/clsi/app/coffee/CompileManager.coffee b/services/clsi/app/coffee/CompileManager.coffee index e7e884998e..20e9bc964e 100644 --- a/services/clsi/app/coffee/CompileManager.coffee +++ b/services/clsi/app/coffee/CompileManager.coffee @@ -112,14 +112,14 @@ module.exports = CompileManager = } return results - wordcount: (project_id, file_name, callback = (error, pdfPositions) ->) -> - logger.log project_id:project_id, file_name:file_name, "running wordcount" + wordcount: (project_id, file_name, image, callback = (error, pdfPositions) ->) -> + logger.log project_id:project_id, file_name:file_name, image:image, "running wordcount" file_path = "$COMPILE_DIR/" + file_name command = [ "texcount", '-inc', file_path, "-out=" + file_path + ".wc"] directory = Path.join(Settings.path.compilesDir, project_id) timeout = 10 * 1000 - CommandRunner.run project_id, command, directory, timeout, (error) -> + CommandRunner.run project_id, command, directory, image, timeout, (error) -> return callback(error) if error? try stdout = fs.readFileSync(directory + "/" + file_name + ".wc", "utf-8") diff --git a/services/clsi/test/unit/coffee/CompileControllerTests.coffee b/services/clsi/test/unit/coffee/CompileControllerTests.coffee index e0307d20c9..6a18ce795f 100644 --- a/services/clsi/test/unit/coffee/CompileControllerTests.coffee +++ b/services/clsi/test/unit/coffee/CompileControllerTests.coffee @@ -197,14 +197,15 @@ describe "CompileController", -> project_id: @project_id @req.query = file: @file + image: @image = "example.com/image" @res.send = sinon.stub() - @CompileManager.wordcount = sinon.stub().callsArgWith(2, null, @texcount = ["mock-texcount"]) + @CompileManager.wordcount = sinon.stub().callsArgWith(3, null, @texcount = ["mock-texcount"]) @CompileController.wordcount @req, @res, @next it "should return the word count of a file", -> @CompileManager.wordcount - .calledWith(@project_id, @file) + .calledWith(@project_id, @file, @image) .should.equal true it "should return the texcount info", -> diff --git a/services/clsi/test/unit/coffee/CompileManagerTests.coffee b/services/clsi/test/unit/coffee/CompileManagerTests.coffee index dff30524f1..54576d8ea8 100644 --- a/services/clsi/test/unit/coffee/CompileManagerTests.coffee +++ b/services/clsi/test/unit/coffee/CompileManagerTests.coffee @@ -179,7 +179,7 @@ describe "CompileManager", -> describe "wordcount", -> beforeEach -> - @CommandRunner.run = sinon.stub().callsArg(4) + @CommandRunner.run = sinon.stub().callsArg(5) @fs.readFileSync = sinon.stub().returns @stdout = "Encoding: ascii\nWords in text: 2" @callback = sinon.stub() @@ -187,8 +187,9 @@ describe "CompileManager", -> @timeout = 10 * 1000 @file_name = "main.tex" @Settings.path.compilesDir = "/local/compile/directory" + @image = "example.com/image" - @CompileManager.wordcount @project_id, @file_name, @callback + @CompileManager.wordcount @project_id, @file_name, @image, @callback it "should run the texcount command", -> @directory = "#{@Settings.path.compilesDir}/#{@project_id}" @@ -196,7 +197,7 @@ describe "CompileManager", -> @command =[ "texcount", "-inc", @file_path, "-out=" + @file_path + ".wc"] @CommandRunner.run - .calledWith(@project_id, @command, @directory, @timeout) + .calledWith(@project_id, @command, @directory, @image, @timeout) .should.equal true it "should call the callback with the parsed output", ->