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