From 857504c409a3bc3f7d9a024722d265287e0d5258 Mon Sep 17 00:00:00 2001 From: Johannes Zellner Date: Thu, 20 Feb 2020 17:05:07 +0100 Subject: [PATCH] Add function to retrieve appstore user access token --- src/appstore.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/appstore.js b/src/appstore.js index 99aaa3524..a506895da 100644 --- a/src/appstore.js +++ b/src/appstore.js @@ -16,6 +16,7 @@ exports = module.exports = { purchaseApp: purchaseApp, unpurchaseApp: unpurchaseApp, + getUserToken: getUserToken, getSubscription: getSubscription, isFreePlan: isFreePlan, @@ -37,7 +38,6 @@ var apps = require('./apps.js'), eventlog = require('./eventlog.js'), groups = require('./groups.js'), mail = require('./mail.js'), - moment = require('moment'), os = require('os'), paths = require('./paths.js'), safe = require('safetydance'), @@ -130,6 +130,23 @@ function registerUser(email, password, callback) { }); } +function getUserToken(callback) { + assert.strictEqual(typeof callback, 'function'); + + getCloudronToken(function (error, token) { + if (error) return callback(error); + + const url = `${settings.apiServerOrigin()}/api/v1/user_token`; + + superagent.post(url).send({}).query({ accessToken: token }).timeout(30 * 1000).end(function (error, result) { + if (error && !error.response) return callback(new BoxError(BoxError.NETWORK_ERROR, error.message)); + if (result.statusCode !== 201) return callback(new BoxError(BoxError.EXTERNAL_ERROR, `getUserToken status code: ${result.status}`)); + + callback(null, result.body.accessToken); + }); + }); +} + function getSubscription(callback) { assert.strictEqual(typeof callback, 'function');