Просмотр исходного кода

Extract V1 projects fetch to integration module

OlProjectGetter now just detects if integration module is loaded and proxies
to integration module. If module not loaded, it just bails
Alasdair Smith 9 лет назад
Родитель
Сommit
8735261022

+ 17 - 19
services/web/app/coffee/Features/Project/OlProjectGetter.coffee

@@ -1,24 +1,22 @@
-request = require 'request'
-settings = require 'settings-sharelatex'
+fs = require 'fs'
+path = require 'path'
 logger = require 'logger-sharelatex'
-Errors = require '../Errors/Errors'
-oAuthRequest = require '../../../../modules/overleaf-integration-web-module/app/coffee/oauth/OAuthRequest'
 
-makeRequest = (opts, callback) ->
-	if settings.apis?.olProjects?.url?
-		urlPath = opts.url
-		opts.url = "#{settings.apis.olProjects.url}#{urlPath}"
-		request opts, callback
-	else
-		callback(new Errors.ServiceNotConfiguredError('OL Projects service not configured'))
+INTEGRATION_MODULE_PATH = path.resolve(__dirname, '../../../../modules/overleaf-integration-web-module')
 
 module.exports = OlProjectGetter =
+	integrationModuleExists: (callback = (error, stats) ->) ->
+		fs.stat INTEGRATION_MODULE_PATH, (error, stats) ->
+			if error? or !stats.isDirectory()
+				return callback(false)
+			return callback(true)
+
 	findAllUsersProjects: (userId, callback = (error, projects) ->) ->
-		oAuthRequest userId, {
-			url: "#{settings.overleaf.host}/api/v1/sharelatex/docs"
-			method: 'GET'
-			json: true
-		}, (error, docs) ->
-			return callback(error) if error?
-			logger.log {userId, docs}, "got projects from OL"
-			callback(null, docs)
+		OlProjectGetter.integrationModuleExists (exists) ->
+			if exists
+				logger.log {exists}, "integration module does exist, loading V1 projects"
+				V1ProjectListGetter = require(path.join(INTEGRATION_MODULE_PATH, 'app/coffee/ProjectList/ProjectListGetter'))
+				V1ProjectListGetter.findAllUsersProjects(userId, callback)
+			else
+				logger.log {exists}, "integration modules doesn't exists, not loading V1 projects"
+				return callback()

+ 1 - 4
services/web/app/coffee/Features/Project/ProjectController.coffee

@@ -153,10 +153,7 @@ module.exports = ProjectController =
 			projects: (cb)->
 				ProjectGetter.findAllUsersProjects user_id, 'name lastUpdated publicAccesLevel archived owner_ref tokens', cb
 			v1Projects: (cb) ->
-				if isV1
-					OlProjectGetter.findAllUsersProjects user_id, cb
-				else
-					cb()
+				OlProjectGetter.findAllUsersProjects user_id, cb
 			hasSubscription: (cb)->
 				LimitationsManager.userHasSubscriptionOrIsGroupMember currentUser, cb
 			user: (cb) ->