Implement GET /parse/schemas

This commit is contained in:
Drew Gross
2016-02-02 17:38:47 -08:00
parent c866afd016
commit 0547592952
2 changed files with 33 additions and 0 deletions

View File

@@ -111,6 +111,7 @@ function ParseServer(args) {
router.merge(require('./push'));
router.merge(require('./installations'));
router.merge(require('./functions'));
router.merge(require('./schemas'));
batch.mountOnto(router);

32
schemas.js Normal file
View File

@@ -0,0 +1,32 @@
// schemas.js
var express = require('express'),
PromiseRouter = require('./PromiseRouter');
var router = new PromiseRouter();
function mongoSchemaToSchemaAPIResponse(schema) {
fieldNames = Object.keys(schema).filter(key => key !== '_id');
return {
className: schema._id,
fields: fieldNames.map(name => {
result = {};
result[name] = {
type: schema[name],
};
return result;
}),
};
}
function getAllSchemas(req) {
return req.config.database.collection('_SCHEMA')
.then(coll => coll.find({}).toArray())
.then(schemas => ({response: {
results: schemas.map(mongoSchemaToSchemaAPIResponse)
}}));
}
router.route('GET', '/schemas', getAllSchemas);
module.exports = router;