mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Collabratec Get Projects API (#1092)
collabratec get projects api GitOrigin-RevId: c733aecf515cf75ca1ae9c454efa7a35f09cf495
This commit is contained in:
parent
2ea0644cfa
commit
f3b92bbeec
5 changed files with 29 additions and 5 deletions
1
services/web/.gitignore
vendored
1
services/web/.gitignore
vendored
|
@ -85,6 +85,7 @@ docker-shared.yml
|
||||||
config/*.coffee
|
config/*.coffee
|
||||||
|
|
||||||
modules/**/Makefile
|
modules/**/Makefile
|
||||||
|
|
||||||
modules/**/index.js
|
modules/**/index.js
|
||||||
modules/**/app/js/*
|
modules/**/app/js/*
|
||||||
modules/**/test/unit/js/*
|
modules/**/test/unit/js/*
|
||||||
|
|
|
@ -184,7 +184,7 @@ module.exports = AuthenticationController =
|
||||||
return res.status(401).json({error: "invalid_token"}) unless body?.user_profile?.id
|
return res.status(401).json({error: "invalid_token"}) unless body?.user_profile?.id
|
||||||
User.findOne { "overleaf.id": body.user_profile.id }, (error, user) ->
|
User.findOne { "overleaf.id": body.user_profile.id }, (error, user) ->
|
||||||
return next(error) if error?
|
return next(error) if error?
|
||||||
return res.status(401).send() unless user?
|
return res.status(401).send({error: "invalid_token"}) unless user?
|
||||||
req.oauth = access_token: body.access_token
|
req.oauth = access_token: body.access_token
|
||||||
req.oauth_user = user
|
req.oauth_user = user
|
||||||
next()
|
next()
|
||||||
|
|
|
@ -11,16 +11,34 @@ DEFAULT_V1_PARAMS = {
|
||||||
timeout: 30 * 1000
|
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 =
|
module.exports = V1Api =
|
||||||
request: (options, callback) ->
|
request: (options, callback) ->
|
||||||
return request(options) if !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?
|
return callback(error, response, body) if error?
|
||||||
if 200 <= response.statusCode < 300 or response.statusCode in (options.expectedStatusCodes or [])
|
if 200 <= response.statusCode < 300 or response.statusCode in (options.expectedStatusCodes or [])
|
||||||
callback null, response, body
|
callback null, response, body
|
||||||
else
|
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
|
error.statusCode = response.statusCode
|
||||||
callback error
|
callback error
|
|
@ -75,6 +75,7 @@ UserSchema = new Schema
|
||||||
accessToken: { type: String }
|
accessToken: { type: String }
|
||||||
refreshToken: { type: String }
|
refreshToken: { type: String }
|
||||||
awareOfV2: { type:Boolean, default: false }
|
awareOfV2: { type:Boolean, default: false }
|
||||||
|
useCollabratecV2: { type:Boolean, default: false }
|
||||||
|
|
||||||
conn = mongoose.createConnection(Settings.mongo.url, {
|
conn = mongoose.createConnection(Settings.mongo.url, {
|
||||||
server: {poolSize: Settings.mongo.poolSize || 10},
|
server: {poolSize: Settings.mongo.poolSize || 10},
|
||||||
|
|
|
@ -185,6 +185,10 @@ class User
|
||||||
return callback(error) if error?
|
return callback(error) if error?
|
||||||
callback(null)
|
callback(null)
|
||||||
|
|
||||||
|
deleteProjects: (callback=(error)) ->
|
||||||
|
db.projects.remove owner_ref:ObjectId(@id), {multi:true}, (err)->
|
||||||
|
callback(err)
|
||||||
|
|
||||||
openProject: (project_id, callback=(error)) ->
|
openProject: (project_id, callback=(error)) ->
|
||||||
@request.get {
|
@request.get {
|
||||||
url: "/project/#{project_id}"
|
url: "/project/#{project_id}"
|
||||||
|
|
Loading…
Reference in a new issue