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

show dropbox sync status on settings page

GitOrigin-RevId: 843950ea236bd80c605cf184959a7ce2d7895693
Ersun Warncke 6 лет назад
Родитель
Сommit
09667a3f6a

+ 13 - 0
services/web/app/src/Features/ThirdPartyDataStore/TpdsController.js

@@ -12,12 +12,15 @@
  * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  */
 let parseParams
+
 const tpdsUpdateHandler = require('./TpdsUpdateHandler')
 const UpdateMerger = require('./UpdateMerger')
 const logger = require('logger-sharelatex')
 const Path = require('path')
 const metrics = require('metrics-sharelatex')
 const NotificationsBuilder = require('../Notifications/NotificationsBuilder')
+const AuthenticationController = require('../Authentication/AuthenticationController')
+const TdpsQueueManager = require('./TpdsQueueManager').promises
 
 module.exports = {
   // mergeUpdate and deleteUpdate are used by Dropbox, where the project is only passed as the name, as the
@@ -130,6 +133,16 @@ module.exports = {
     })
   },
 
+  async getQueues(req, res) {
+    const userId = AuthenticationController.getLoggedInUserId(req)
+    try {
+      res.json(await TdpsQueueManager.getQueues(userId))
+    } catch (err) {
+      logger.error({ err, userId }, 'error getting queues')
+      res.json({ error: 'error getting queues' })
+    }
+  },
+
   parseParams: (parseParams = function(req) {
     let filePath, projectName
     let path = req.params[0]

+ 15 - 0
services/web/app/src/Features/ThirdPartyDataStore/TpdsQueueManager.js

@@ -0,0 +1,15 @@
+const Settings = require('settings-sharelatex')
+const request = require('request-promise-native')
+
+async function getQueues(userId) {
+  return request({
+    uri: `${Settings.apis.tpdsworker.url}/queues/${userId}`,
+    json: true
+  })
+}
+
+module.exports = {
+  promises: {
+    getQueues
+  }
+}

+ 6 - 0
services/web/app/src/router.js

@@ -246,6 +246,12 @@ function initialize(webRouter, privateApiRouter, publicApiRouter) {
   )
   // for /user/reconfirm POST, see password router
 
+  webRouter.get(
+    '/user/tpds/queues',
+    AuthenticationController.requireLogin(),
+    TpdsController.getQueues
+  )
+
   webRouter.get(
     '/user/projects',
     AuthenticationController.requireLogin(),