Implement GET /parse/schemas
This commit is contained in:
1
index.js
1
index.js
@@ -111,6 +111,7 @@ function ParseServer(args) {
|
|||||||
router.merge(require('./push'));
|
router.merge(require('./push'));
|
||||||
router.merge(require('./installations'));
|
router.merge(require('./installations'));
|
||||||
router.merge(require('./functions'));
|
router.merge(require('./functions'));
|
||||||
|
router.merge(require('./schemas'));
|
||||||
|
|
||||||
batch.mountOnto(router);
|
batch.mountOnto(router);
|
||||||
|
|
||||||
|
|||||||
32
schemas.js
Normal file
32
schemas.js
Normal 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;
|
||||||
Reference in New Issue
Block a user