Add proxy api to get non approved app listings
This commit is contained in:
@@ -7,12 +7,15 @@ exports = module.exports = {
|
|||||||
|
|
||||||
enabled: enabled,
|
enabled: enabled,
|
||||||
setEnabled: setEnabled,
|
setEnabled: setEnabled,
|
||||||
issueDeveloperToken: issueDeveloperToken
|
issueDeveloperToken: issueDeveloperToken,
|
||||||
|
getNonApprovedApps: getNonApprovedApps
|
||||||
};
|
};
|
||||||
|
|
||||||
var assert = require('assert'),
|
var assert = require('assert'),
|
||||||
|
config = require('./config.js'),
|
||||||
tokendb = require('./tokendb.js'),
|
tokendb = require('./tokendb.js'),
|
||||||
settings = require('./settings.js'),
|
settings = require('./settings.js'),
|
||||||
|
superagent = require('superagent'),
|
||||||
util = require('util');
|
util = require('util');
|
||||||
|
|
||||||
function DeveloperError(reason, errorOrMessage) {
|
function DeveloperError(reason, errorOrMessage) {
|
||||||
@@ -68,3 +71,15 @@ function issueDeveloperToken(user, callback) {
|
|||||||
callback(null, { token: token, expiresAt: expiresAt });
|
callback(null, { token: token, expiresAt: expiresAt });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getNonApprovedApps(callback) {
|
||||||
|
assert.strictEqual(typeof callback, 'function');
|
||||||
|
|
||||||
|
var url = config.apiServerOrigin() + '/api/v1/boxes/' + config.fqdn() + '/apps';
|
||||||
|
superagent.get(url).query({ token: config.token(), boxVersion: config.version() }).end(function (error, result) {
|
||||||
|
if (error) return callback(new DeveloperError(DeveloperError.INTERNAL_ERROR, error));
|
||||||
|
if (result.status !== 200) return callback(new DeveloperError(DeveloperError.INTERNAL_ERROR, util.format('App listing failed. %s %j', result.status, result.body)));
|
||||||
|
|
||||||
|
callback(null, result.apps);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ exports = module.exports = {
|
|||||||
enabled: enabled,
|
enabled: enabled,
|
||||||
setEnabled: setEnabled,
|
setEnabled: setEnabled,
|
||||||
status: status,
|
status: status,
|
||||||
login: login
|
login: login,
|
||||||
|
apps: apps
|
||||||
};
|
};
|
||||||
|
|
||||||
var developer = require('../developer.js'),
|
var developer = require('../developer.js'),
|
||||||
@@ -46,3 +47,10 @@ function login(req, res, next) {
|
|||||||
});
|
});
|
||||||
})(req, res, next);
|
})(req, res, next);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function apps(req, res, next) {
|
||||||
|
developer.getNonApprovedApps(function (error, result) {
|
||||||
|
if (error) return next(new HttpError(500, error));
|
||||||
|
next(new HttpSuccess(200, { apps: result }));
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -92,6 +92,7 @@ function initializeExpressSync() {
|
|||||||
router.post('/api/v1/developer', developerScope, routes.user.requireAdmin, routes.user.verifyPassword, routes.developer.setEnabled);
|
router.post('/api/v1/developer', developerScope, routes.user.requireAdmin, routes.user.verifyPassword, routes.developer.setEnabled);
|
||||||
router.get ('/api/v1/developer', developerScope, routes.developer.enabled, routes.developer.status);
|
router.get ('/api/v1/developer', developerScope, routes.developer.enabled, routes.developer.status);
|
||||||
router.post('/api/v1/developer/login', routes.developer.enabled, routes.developer.login);
|
router.post('/api/v1/developer/login', routes.developer.enabled, routes.developer.login);
|
||||||
|
router.get ('/api/v1/developer/apps', developerScope, routes.developer.enabled, routes.developer.apps);
|
||||||
|
|
||||||
// private routes
|
// private routes
|
||||||
router.get ('/api/v1/cloudron/config', rootScope, routes.cloudron.getConfig);
|
router.get ('/api/v1/cloudron/config', rootScope, routes.cloudron.getConfig);
|
||||||
|
|||||||
Reference in New Issue
Block a user