overleaf/services/web/app/coffee/Features/V1/V1Api.coffee

27 lines
832 B
CoffeeScript
Raw Normal View History

request = require 'request'
settings = require 'settings-sharelatex'
# TODO: check what happens when these settings aren't defined
DEFAULT_V1_PARAMS = {
baseUrl: settings?.apis?.v1?.url
auth:
user: settings?.apis?.v1?.user
pass: settings?.apis?.v1?.pass
json: true,
timeout: 30 * 1000
}
request = request.defaults(DEFAULT_V1_PARAMS)
module.exports = V1Api =
request: (options, callback) ->
return request(options) if !callback?
request options, (error, response, body) ->
return callback(error, response, body) if error?
if 200 <= response.statusCode < 300 or response.statusCode in (options.expectedStatusCodes or [])
callback null, response, body
else
error = new Error("overleaf v1 returned non-success code: #{response.statusCode}")
error.statusCode = response.statusCode
callback error