diff --git a/src/appstore.js b/src/appstore.js index e8729fec6..92e9acaf2 100644 --- a/src/appstore.js +++ b/src/appstore.js @@ -111,14 +111,14 @@ async function registerUser(email, password) { async function getWebToken() { if (settings.isDemo()) throw new BoxError(BoxError.BAD_FIELD, 'Not allowed in demo mode'); - const token = await settings.getAppstoreWebToken(); + const token = await settings.set(settings.APPSTORE_WEB_TOKEN_KEY); if (!token) throw new BoxError(BoxError.NOT_FOUND); // user will have to re-login with password somehow return token; } async function getSubscription() { - const token = await settings.getAppstoreApiToken(); + const token = await settings.get(settings.APPSTORE_API_TOKEN_KEY); if (!token) throw new BoxError(BoxError.LICENSE_ERROR, 'Missing token'); const [error, response] = await safe(superagent.get(`${settings.apiServerOrigin()}/api/v1/subscription`) @@ -148,7 +148,7 @@ async function purchaseApp(data) { assert(data.appstoreId || data.manifestId); assert.strictEqual(typeof data.appId, 'string'); - const token = await settings.getAppstoreApiToken(); + const token = await settings.get(settings.APPSTORE_API_TOKEN_KEY); if (!token) throw new BoxError(BoxError.LICENSE_ERROR, 'Missing token'); const [error, response] = await safe(superagent.post(`${settings.apiServerOrigin()}/api/v1/cloudronapps`) @@ -170,7 +170,7 @@ async function unpurchaseApp(appId, data) { assert.strictEqual(typeof data, 'object'); // { appstoreId, manifestId } assert(data.appstoreId || data.manifestId); - const token = await settings.getAppstoreApiToken(); + const token = await settings.get(settings.APPSTORE_API_TOKEN_KEY); if (!token) throw new BoxError(BoxError.LICENSE_ERROR, 'Missing token'); const url = `${settings.apiServerOrigin()}/api/v1/cloudronapps/${appId}`; @@ -199,7 +199,7 @@ async function unpurchaseApp(appId, data) { async function getBoxUpdate(options) { assert.strictEqual(typeof options, 'object'); - const token = await settings.getAppstoreApiToken(); + const token = await settings.get(settings.APPSTORE_API_TOKEN_KEY); if (!token) throw new BoxError(BoxError.LICENSE_ERROR, 'Missing token'); const query = { @@ -239,7 +239,7 @@ async function getAppUpdate(app, options) { assert.strictEqual(typeof app, 'object'); assert.strictEqual(typeof options, 'object'); - const token = await settings.getAppstoreApiToken(); + const token = await settings.get(settings.APPSTORE_API_TOKEN_KEY); if (!token) throw new BoxError(BoxError.LICENSE_ERROR, 'Missing token'); const query = { @@ -295,8 +295,8 @@ async function registerCloudron(data) { if (!response.body.cloudronToken) throw new BoxError(BoxError.EXTERNAL_ERROR, 'Invalid response - no token'); await settings.setCloudronId(response.body.cloudronId); - await settings.setAppstoreApiToken(response.body.cloudronToken); - await settings.setAppstoreWebToken(accessToken); + await settings.set(settings.APPSTORE_API_TOKEN_KEY, response.body.cloudronToken); + await settings.set(settings.APPSTORE_WEB_TOKEN_KEY, accessToken); debug(`registerCloudron: Cloudron registered with id ${response.body.cloudronId}`); } @@ -306,7 +306,7 @@ async function updateCloudron(data) { const { domain } = data; - const token = await settings.getAppstoreApiToken(); + const token = await settings.get(settings.APPSTORE_API_TOKEN_KEY); if (!token) throw new BoxError(BoxError.LICENSE_ERROR, 'Missing token'); const query = { @@ -341,8 +341,8 @@ async function registerWithLoginCredentials(options) { async function unregister() { await settings.setCloudronId(''); - await settings.setAppstoreApiToken(''); - await settings.setAppstoreWebToken(''); + await settings.set(settings.APPSTORE_API_TOKEN_KEY, ''); + await settings.set(settings.APPSTORE_WEB_TOKEN_KEY, ''); } async function createTicket(info, auditSource) { @@ -354,7 +354,7 @@ async function createTicket(info, auditSource) { assert.strictEqual(typeof info.description, 'string'); assert.strictEqual(typeof auditSource, 'object'); - const token = await settings.getAppstoreApiToken(); + const token = await settings.get(settings.APPSTORE_API_TOKEN_KEY); if (!token) throw new BoxError(BoxError.LICENSE_ERROR, 'Missing token'); if (info.enableSshSupport) { @@ -394,7 +394,7 @@ async function createTicket(info, auditSource) { } async function getApps() { - const token = await settings.getAppstoreApiToken(); + const token = await settings.get(settings.APPSTORE_API_TOKEN_KEY); if (!token) throw new BoxError(BoxError.LICENSE_ERROR, 'Missing token'); const [error, response] = await safe(superagent.get(`${settings.apiServerOrigin()}/api/v1/apps`) @@ -420,7 +420,7 @@ async function getAppVersion(appId, version) { if (!isAppAllowed(appId, listingConfig)) throw new BoxError(BoxError.FEATURE_DISABLED); - const token = await settings.getAppstoreApiToken(); + const token = await settings.get(settings.APPSTORE_API_TOKEN_KEY); if (!token) throw new BoxError(BoxError.LICENSE_ERROR, 'Missing token'); let url = `${settings.apiServerOrigin()}/api/v1/apps/${appId}`; diff --git a/src/routes/test/appstore-test.js b/src/routes/test/appstore-test.js index f9c0e6a52..ca981eeae 100644 --- a/src/routes/test/appstore-test.js +++ b/src/routes/test/appstore-test.js @@ -105,8 +105,8 @@ describe('Appstore Cloudron Registration API - existing user', function () { expect(scope1.isDone()).to.not.be.ok(); // should not have called register_user since signup is false expect(scope2.isDone()).to.be.ok(); expect(scope3.isDone()).to.be.ok(); - expect(await settings.getAppstoreApiToken()).to.be('CLOUDRON_TOKEN'); - expect(await settings.getAppstoreWebToken()).to.be('SECRET_TOKEN'); + expect(await settings.get(settings.APPSTORE_API_TOKEN_KEY)).to.be('CLOUDRON_TOKEN'); + expect(await settings.get(settings.APPSTORE_WEB_TOKEN_KEY)).to.be('SECRET_TOKEN'); nock.cleanAll(); }); @@ -153,8 +153,8 @@ describe('Appstore Cloudron Registration API - new user signup', function () { expect(scope1.isDone()).to.be.ok(); expect(scope2.isDone()).to.be.ok(); expect(scope3.isDone()).to.be.ok(); - expect(await settings.getAppstoreApiToken()).to.be('CLOUDRON_TOKEN'); - expect(await settings.getAppstoreWebToken()).to.be('SECRET_TOKEN'); + expect(await settings.get(settings.APPSTORE_API_TOKEN_KEY)).to.be('CLOUDRON_TOKEN'); + expect(await settings.get(settings.APPSTORE_WEB_TOKEN_KEY)).to.be('SECRET_TOKEN'); }); it('can get subscription', async function () { diff --git a/src/settings.js b/src/settings.js index 7697724e9..91f5ad64b 100644 --- a/src/settings.js +++ b/src/settings.js @@ -43,12 +43,6 @@ exports = module.exports = { getCloudronId, setCloudronId, - getAppstoreApiToken, - setAppstoreApiToken, - - getAppstoreWebToken, - setAppstoreWebToken, - getSysinfoConfig, setSysinfoConfig, @@ -178,8 +172,6 @@ const gDefaults = (function () { }; result[exports.LANGUAGE_KEY] = 'en'; result[exports.CLOUDRON_ID_KEY] = ''; - result[exports.APPSTORE_API_TOKEN_KEY] = ''; - result[exports.APPSTORE_WEB_TOKEN_KEY] = ''; result[exports.BACKUP_CONFIG_KEY] = { provider: 'filesystem', backupFolder: paths.DEFAULT_BACKUP_DIR, @@ -655,32 +647,6 @@ async function setCloudronId(cid) { notifyChange(exports.CLOUDRON_ID_KEY, cid); } -async function getAppstoreApiToken() { - const value = await get(exports.APPSTORE_API_TOKEN_KEY); - if (value === null) return gDefaults[exports.APPSTORE_API_TOKEN_KEY]; - return value; -} - -async function setAppstoreApiToken(token) { - assert.strictEqual(typeof token, 'string'); - - await set(exports.APPSTORE_API_TOKEN_KEY, token); - notifyChange(exports.APPSTORE_API_TOKEN_KEY, token); -} - -async function getAppstoreWebToken() { - const value = await get(exports.APPSTORE_WEB_TOKEN_KEY); - if (value === null) return gDefaults[exports.APPSTORE_WEB_TOKEN_KEY]; - return value; -} - -async function setAppstoreWebToken(token) { - assert.strictEqual(typeof token, 'string'); - - await set(exports.APPSTORE_WEB_TOKEN_KEY, token); - notifyChange(exports.APPSTORE_WEB_TOKEN_KEY, token); -} - async function list() { const settings = await database.query(`SELECT ${SETTINGS_FIELDS} FROM settings WHERE value IS NOT NULL ORDER BY name`);