|
|
@@ -11,16 +11,34 @@ DEFAULT_V1_PARAMS = {
|
|
|
timeout: 30 * 1000
|
|
|
}
|
|
|
|
|
|
-request = request.defaults(DEFAULT_V1_PARAMS)
|
|
|
+v1Request = request.defaults(DEFAULT_V1_PARAMS)
|
|
|
+
|
|
|
+DEFAULT_V1_OAUTH_PARAMS = {
|
|
|
+ baseUrl: settings?.apis?.v1?.url
|
|
|
+ json: true,
|
|
|
+ timeout: 30 * 1000
|
|
|
+}
|
|
|
+
|
|
|
+v1OauthRequest = request.defaults(DEFAULT_V1_OAUTH_PARAMS)
|
|
|
|
|
|
module.exports = V1Api =
|
|
|
request: (options, callback) ->
|
|
|
return request(options) if !callback?
|
|
|
- request options, (error, response, body) ->
|
|
|
+ v1Request options, (error, response, body) ->
|
|
|
+ V1Api._responseHandler options, error, response, body, callback
|
|
|
+
|
|
|
+ oauthRequest: (options, token, callback) ->
|
|
|
+ return callback(new Error "uri required") unless options.uri?
|
|
|
+ options.method = "GET" unless options.method?
|
|
|
+ options.auth = bearer: token
|
|
|
+ v1OauthRequest options, (error, response, body) ->
|
|
|
+ V1Api._responseHandler options, error, response, body, callback
|
|
|
+
|
|
|
+ _responseHandler: (options, error, response, body, callback) ->
|
|
|
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 = new Error("overleaf v1 returned non-success code: #{response.statusCode} #{options.method} #{options.uri}")
|
|
|
error.statusCode = response.statusCode
|
|
|
- callback error
|
|
|
+ callback error
|