diff --git a/services/web/app/coffee/Features/LinkedFiles/LinkedFilesController.coffee b/services/web/app/coffee/Features/LinkedFiles/LinkedFilesController.coffee index 9e70f6e200..34f77fde20 100644 --- a/services/web/app/coffee/Features/LinkedFiles/LinkedFilesController.coffee +++ b/services/web/app/coffee/Features/LinkedFiles/LinkedFilesController.coffee @@ -4,8 +4,19 @@ ProjectLocator = require '../Project/ProjectLocator' Settings = require 'settings-sharelatex' logger = require 'logger-sharelatex' _ = require 'underscore' -LinkedFilesErrors = require './LinkedFilesErrors' LinkedFilesHandler = require './LinkedFilesHandler' +{ + + UrlFetchFailedError, + InvalidUrlError, + OutputFileFetchFailedError, + AccessDeniedError, + BadEntityTypeError, + BadDataError, + ProjectNotFoundError, + V1ProjectNotFoundError, + SourceFileNotFoundError, +} = require './LinkedFilesErrors' module.exports = LinkedFilesController = { @@ -41,7 +52,7 @@ module.exports = LinkedFilesController = { parent_folder_id, user_id, (err, newFileId) -> - return LinkedFilesErrors.handleError(err, req, res, next) if err? + return LinkedFilesController.handleError(err, req, res, next) if err? res.json(new_file_id: newFileId) refreshLinkedFile: (req, res, next) -> @@ -68,7 +79,44 @@ module.exports = LinkedFilesController = { parent_folder_id, user_id, (err, newFileId) -> - return LinkedFilesErrors.handleError(err, req, res, next) if err? + return LinkedFilesController.handleError(err, req, res, next) if err? res.json(new_file_id: newFileId) - } + handleError: (error, req, res, next) -> + if error instanceof BadDataError + res.status(400).send("The submitted data is not valid") + + else if error instanceof AccessDeniedError + res.status(403).send("You do not have access to this project") + + else if error instanceof BadDataError + res.status(400).send("The submitted data is not valid") + + else if error instanceof BadEntityTypeError + res.status(400).send("The file is the wrong type") + + else if error instanceof SourceFileNotFoundError + res.status(404).send("Source file not found") + + else if error instanceof ProjectNotFoundError + res.status(404).send("Project not found") + + else if error instanceof V1ProjectNotFoundError + res.status(409).send("Sorry, the source project is not yet imported to Overleaf v2. Please import it to Overleaf v2 to refresh this file") + + else if error instanceof OutputFileFetchFailedError + res.status(404).send("Could not get output file") + + else if error instanceof UrlFetchFailedError + res.status(422).send( + "Your URL could not be reached (#{error.statusCode} status code). Please check it and try again." + ) + + else if error instanceof InvalidUrlError + res.status(422).send( + "Your URL is not valid. Please check it and try again." + ) + + else + next(error) +} diff --git a/services/web/app/coffee/Features/LinkedFiles/LinkedFilesErrors.coffee b/services/web/app/coffee/Features/LinkedFiles/LinkedFilesErrors.coffee index 69c66e11ea..8cf671702e 100644 --- a/services/web/app/coffee/Features/LinkedFiles/LinkedFilesErrors.coffee +++ b/services/web/app/coffee/Features/LinkedFiles/LinkedFilesErrors.coffee @@ -81,42 +81,4 @@ module.exports = { ProjectNotFoundError, V1ProjectNotFoundError, SourceFileNotFoundError, - - handleError: (error, req, res, next) -> - if error instanceof BadDataError - res.status(400).send("The submitted data is not valid") - - else if error instanceof AccessDeniedError - res.status(403).send("You do not have access to this project") - - else if error instanceof BadDataError - res.status(400).send("The submitted data is not valid") - - else if error instanceof BadEntityTypeError - res.status(400).send("The file is the wrong type") - - else if error instanceof SourceFileNotFoundError - res.status(404).send("Source file not found") - - else if error instanceof ProjectNotFoundError - res.status(404).send("Project not found") - - else if error instanceof V1ProjectNotFoundError - res.status(409).send("Sorry, the source project is not yet imported to Overleaf v2. Please import it to Overleaf v2 to refresh this file") - - else if error instanceof OutputFileFetchFailedError - res.status(404).send("Could not get output file") - - else if error instanceof UrlFetchFailedError - res.status(422).send( - "Your URL could not be reached (#{error.statusCode} status code). Please check it and try again." - ) - - else if error instanceof InvalidUrlError - res.status(422).send( - "Your URL is not valid. Please check it and try again." - ) - - else - next(error) }