Tabs -> spaces
This commit is contained in:
94
schemas.js
94
schemas.js
@@ -6,62 +6,62 @@ var express = require('express'),
|
|||||||
var router = new PromiseRouter();
|
var router = new PromiseRouter();
|
||||||
|
|
||||||
function mongoFieldTypeToApiResponseType(type) {
|
function mongoFieldTypeToApiResponseType(type) {
|
||||||
if (type[0] === '*') {
|
if (type[0] === '*') {
|
||||||
return {
|
return {
|
||||||
type: 'Pointer',
|
type: 'Pointer',
|
||||||
targetClass: type.slice(1),
|
targetClass: type.slice(1),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (type.startsWith('relation<')) {
|
if (type.startsWith('relation<')) {
|
||||||
return {
|
return {
|
||||||
type: 'Relation',
|
type: 'Relation',
|
||||||
targetClass: type.slice('relation<'.length, type.length - 1),
|
targetClass: type.slice('relation<'.length, type.length - 1),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'number': return {type: 'Number'};
|
case 'number': return {type: 'Number'};
|
||||||
case 'string': return {type: 'String'};
|
case 'string': return {type: 'String'};
|
||||||
case 'boolean': return {type: 'Boolean'};
|
case 'boolean': return {type: 'Boolean'};
|
||||||
case 'date': return {type: 'Date'};
|
case 'date': return {type: 'Date'};
|
||||||
case 'object': return {type: 'Object'};
|
case 'object': return {type: 'Object'};
|
||||||
case 'array': return {type: 'Array'};
|
case 'array': return {type: 'Array'};
|
||||||
case 'geopoint': return {type: 'GeoPoint'};
|
case 'geopoint': return {type: 'GeoPoint'};
|
||||||
case 'file': return {type: 'File'};
|
case 'file': return {type: 'File'};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function mongoSchemaAPIResponseFields(schema) {
|
function mongoSchemaAPIResponseFields(schema) {
|
||||||
fieldNames = Object.keys(schema).filter(key => key !== '_id');
|
fieldNames = Object.keys(schema).filter(key => key !== '_id');
|
||||||
response = {};
|
response = {};
|
||||||
fieldNames.forEach(fieldName => {
|
fieldNames.forEach(fieldName => {
|
||||||
response[fieldName] = mongoFieldTypeToApiResponseType(schema[fieldName]);
|
response[fieldName] = mongoFieldTypeToApiResponseType(schema[fieldName]);
|
||||||
});
|
});
|
||||||
response.ACL = {type: 'ACL'};
|
response.ACL = {type: 'ACL'};
|
||||||
response.createdAt = {type: 'Date'};
|
response.createdAt = {type: 'Date'};
|
||||||
response.updatedAt = {type: 'Date'};
|
response.updatedAt = {type: 'Date'};
|
||||||
response.objectId = {type: 'String'};
|
response.objectId = {type: 'String'};
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
function mongoSchemaToSchemaAPIResponse(schema) {
|
function mongoSchemaToSchemaAPIResponse(schema) {
|
||||||
return {
|
return {
|
||||||
className: schema._id,
|
className: schema._id,
|
||||||
fields: mongoSchemaAPIResponseFields(schema),
|
fields: mongoSchemaAPIResponseFields(schema),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllSchemas(req) {
|
function getAllSchemas(req) {
|
||||||
if (!req.auth.isMaster) {
|
if (!req.auth.isMaster) {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
status: 401,
|
status: 401,
|
||||||
response: {error: 'unauthorized'},
|
response: {error: 'unauthorized'},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return req.config.database.collection('_SCHEMA')
|
return req.config.database.collection('_SCHEMA')
|
||||||
.then(coll => coll.find({}).toArray())
|
.then(coll => coll.find({}).toArray())
|
||||||
.then(schemas => ({response: {
|
.then(schemas => ({response: {
|
||||||
results: schemas.map(mongoSchemaToSchemaAPIResponse)
|
results: schemas.map(mongoSchemaToSchemaAPIResponse)
|
||||||
}}));
|
}}));
|
||||||
}
|
}
|
||||||
|
|
||||||
router.route('GET', '/schemas', getAllSchemas);
|
router.route('GET', '/schemas', getAllSchemas);
|
||||||
|
|||||||
Reference in New Issue
Block a user