Skip to content

Commit 364c7de

Browse files
committed
Touch up features endpoint
1 parent 63f7468 commit 364c7de

File tree

3 files changed

+23
-41
lines changed

3 files changed

+23
-41
lines changed

spec/features.spec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const request = require("request");
55

66
describe('features', () => {
77
it('set and get features', (done) => {
8-
features.setFeature('users', {
8+
features.setFeature('push', {
99
testOption1: true,
1010
testOption2: false
1111
});
@@ -14,10 +14,10 @@ describe('features', () => {
1414

1515
var expected = {
1616
testOption1: true,
17-
testOption2: false
17+
testOption2: false
1818
};
1919

20-
expect(_features.users).toEqual(expected);
20+
expect(_features.push).toEqual(expected);
2121
done();
2222
});
2323

src/Routers/FeaturesRouter.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
import PromiseRouter from '../PromiseRouter';
1+
import PromiseRouter from '../PromiseRouter';
22
import * as middleware from "../middlewares";
33
import { getFeatures } from '../features';
44

55
export class FeaturesRouter extends PromiseRouter {
66
mountRoutes() {
77
this.route('GET','/features', middleware.promiseEnforceMasterKeyAccess, () => {
8-
return { response: {
9-
results: [getFeatures()]
10-
} };
8+
return { response: getFeatures() };
119
});
1210
}
1311
}

src/features.js

Lines changed: 18 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -14,42 +14,38 @@
1414
* Features that use Adapters should specify the feature options through
1515
* the setFeature method in your controller and feature
1616
* Reference PushController and ParsePushAdapter as an example.
17-
*
17+
*
1818
* NOTE: When adding new endpoints be sure to update this list both (features, featureSwitch)
19-
* if you are planning to have a UI consume it.
19+
* if you are planning to have a UI consume it.
2020
*/
2121

2222
// default features
2323
let features = {
24-
analytics: {
25-
slowQueries: false,
26-
performanceAnalysis: false,
27-
retentionAnalysis: false,
28-
},
29-
classes: {},
30-
files: {},
31-
functions: {},
3224
globalConfig: {
33-
create: true,
34-
read: true,
35-
update: true,
36-
delete: true,
25+
create: false,
26+
read: false,
27+
update: false,
28+
delete: false,
3729
},
3830
hooks: {
3931
create: false,
4032
read: false,
4133
update: false,
4234
delete: false,
4335
},
44-
iapValidation: {},
45-
installations: {},
4636
logs: {
47-
info: true,
48-
error: true,
37+
level: false,
38+
size: false,
39+
order: false,
40+
until: false,
41+
from: false,
42+
},
43+
push: {
44+
immediatePush: false,
45+
scheduledPush: false,
46+
storedPushData: false,
47+
pushAudiences: false,
4948
},
50-
publicAPI: {},
51-
push: {},
52-
roles: {},
5349
schemas: {
5450
addField: true,
5551
removeField: true,
@@ -58,27 +54,15 @@ let features = {
5854
clearAllDataFromClass: false,
5955
exportClass: false,
6056
},
61-
sessions: {},
62-
users: {},
6357
};
6458

6559
// master switch for features
6660
let featuresSwitch = {
67-
analytics: true,
68-
classes: true,
69-
files: true,
70-
functions: true,
7161
globalConfig: true,
7262
hooks: true,
73-
iapValidation: true,
74-
installations: true,
7563
logs: true,
76-
publicAPI: true,
7764
push: true,
78-
roles: true,
7965
schemas: true,
80-
sessions: true,
81-
users: true,
8266
};
8367

8468
/**
@@ -94,7 +78,7 @@ function setFeature(key, value) {
9478
function getFeatures() {
9579
let result = {};
9680
Object.keys(features).forEach((key) => {
97-
if (featuresSwitch[key]) {
81+
if (featuresSwitch[key] && features[key]) {
9882
result[key] = features[key];
9983
}
10084
});

0 commit comments

Comments
 (0)