Touch up features endpoint
This commit is contained in:
@@ -5,7 +5,7 @@ const request = require("request");
|
||||
|
||||
describe('features', () => {
|
||||
it('set and get features', (done) => {
|
||||
features.setFeature('users', {
|
||||
features.setFeature('push', {
|
||||
testOption1: true,
|
||||
testOption2: false
|
||||
});
|
||||
@@ -14,10 +14,10 @@ describe('features', () => {
|
||||
|
||||
var expected = {
|
||||
testOption1: true,
|
||||
testOption2: false
|
||||
testOption2: false
|
||||
};
|
||||
|
||||
expect(_features.users).toEqual(expected);
|
||||
expect(_features.push).toEqual(expected);
|
||||
done();
|
||||
});
|
||||
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
import PromiseRouter from '../PromiseRouter';
|
||||
import * as middleware from "../middlewares";
|
||||
import { getFeatures } from '../features';
|
||||
|
||||
export class FeaturesRouter extends PromiseRouter {
|
||||
mountRoutes() {
|
||||
this.route('GET','/features', middleware.promiseEnforceMasterKeyAccess, () => {
|
||||
return { response: {
|
||||
results: [getFeatures()]
|
||||
} };
|
||||
return { response: getFeatures() };
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,26 +14,18 @@
|
||||
* Features that use Adapters should specify the feature options through
|
||||
* the setFeature method in your controller and feature
|
||||
* Reference PushController and ParsePushAdapter as an example.
|
||||
*
|
||||
*
|
||||
* NOTE: When adding new endpoints be sure to update this list both (features, featureSwitch)
|
||||
* if you are planning to have a UI consume it.
|
||||
* if you are planning to have a UI consume it.
|
||||
*/
|
||||
|
||||
// default features
|
||||
let features = {
|
||||
analytics: {
|
||||
slowQueries: false,
|
||||
performanceAnalysis: false,
|
||||
retentionAnalysis: false,
|
||||
},
|
||||
classes: {},
|
||||
files: {},
|
||||
functions: {},
|
||||
globalConfig: {
|
||||
create: true,
|
||||
read: true,
|
||||
update: true,
|
||||
delete: true,
|
||||
create: false,
|
||||
read: false,
|
||||
update: false,
|
||||
delete: false,
|
||||
},
|
||||
hooks: {
|
||||
create: false,
|
||||
@@ -41,15 +33,19 @@ let features = {
|
||||
update: false,
|
||||
delete: false,
|
||||
},
|
||||
iapValidation: {},
|
||||
installations: {},
|
||||
logs: {
|
||||
info: true,
|
||||
error: true,
|
||||
level: false,
|
||||
size: false,
|
||||
order: false,
|
||||
until: false,
|
||||
from: false,
|
||||
},
|
||||
push: {
|
||||
immediatePush: false,
|
||||
scheduledPush: false,
|
||||
storedPushData: false,
|
||||
pushAudiences: false,
|
||||
},
|
||||
publicAPI: {},
|
||||
push: {},
|
||||
roles: {},
|
||||
schemas: {
|
||||
addField: true,
|
||||
removeField: true,
|
||||
@@ -58,27 +54,15 @@ let features = {
|
||||
clearAllDataFromClass: false,
|
||||
exportClass: false,
|
||||
},
|
||||
sessions: {},
|
||||
users: {},
|
||||
};
|
||||
|
||||
// master switch for features
|
||||
let featuresSwitch = {
|
||||
analytics: true,
|
||||
classes: true,
|
||||
files: true,
|
||||
functions: true,
|
||||
globalConfig: true,
|
||||
hooks: true,
|
||||
iapValidation: true,
|
||||
installations: true,
|
||||
logs: true,
|
||||
publicAPI: true,
|
||||
push: true,
|
||||
roles: true,
|
||||
schemas: true,
|
||||
sessions: true,
|
||||
users: true,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -94,7 +78,7 @@ function setFeature(key, value) {
|
||||
function getFeatures() {
|
||||
let result = {};
|
||||
Object.keys(features).forEach((key) => {
|
||||
if (featuresSwitch[key]) {
|
||||
if (featuresSwitch[key] && features[key]) {
|
||||
result[key] = features[key];
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user