Add settings.getSubscription()

This commit is contained in:
Johannes Zellner
2017-06-19 13:26:49 +02:00
parent f3fec9a33c
commit 65f949e669
+21
View File
@@ -8,6 +8,8 @@ exports = module.exports = {
getEmailStatus: getEmailStatus,
getSubscription: getSubscription,
getAutoupdatePattern: getAutoupdatePattern,
setAutoupdatePattern: setAutoupdatePattern,
@@ -354,6 +356,25 @@ function getEmailStatus(callback) {
});
}
function getSubscription(callback) {
assert.strictEqual(typeof callback, 'function');
getAppstoreConfig(function (error, result) {
if (error) return callback(error);
const url = config.apiServerOrigin() + '/api/v1/users/' + result.userId + '/cloudrons/' + result.cloudronId + '/subscription';
superagent.get(url).query({ accessToken: result.token }).timeout(30 * 1000).end(function (error, result) {
if (error && !error.response) return callback(new SettingsError(SettingsError.EXTERNAL_ERROR, error.message));
if (result.statusCode === 401) return callback(new SettingsError(SettingsError.EXTERNAL_ERROR, 'invalid appstore token'));
if (result.statusCode === 403) return callback(new SettingsError(SettingsError.EXTERNAL_ERROR, 'wrong user'));
if (result.statusCode === 502) return callback(new SettingsError(SettingsError.EXTERNAL_ERROR, 'stripe error'));
if (result.statusCode !== 200) return callback(new SettingsError(SettingsError.EXTERNAL_ERROR, 'unknown error'));
callback(null, result.body.subscription);
});
});
}
function setAutoupdatePattern(pattern, callback) {
assert.strictEqual(typeof pattern, 'string');
assert.strictEqual(typeof callback, 'function');