Skip to content

Commit 6bea950

Browse files
committed
Merge pull request #1164 from drew-gross/push-enable
Mark push as enabled in serverInfo endpoint
2 parents 1796ae3 + 7cdf85b commit 6bea950

File tree

6 files changed

+52
-139
lines changed

6 files changed

+52
-139
lines changed

spec/features.spec.js

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,9 @@
11
'use strict';
22

3-
var features = require('../src/features');
43
const request = require("request");
54

65
describe('features', () => {
7-
it('set and get features', (done) => {
8-
features.setFeature('push', {
9-
testOption1: true,
10-
testOption2: false
11-
});
12-
13-
var _features = features.getFeatures();
14-
15-
var expected = {
16-
testOption1: true,
17-
testOption2: false
18-
};
19-
20-
expect(_features.push).toEqual(expected);
21-
done();
22-
});
23-
24-
it('get features that does not exist', (done) => {
25-
var _features = features.getFeatures();
26-
expect(_features.test).toBeUndefined();
27-
done();
28-
});
29-
30-
it('requires the master key to get all schemas', done => {
6+
it('requires the master key to get features', done => {
317
request.get({
328
url: 'http://localhost:8378/1/serverInfo',
339
json: true,

src/Controllers/AdaptableController.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,8 @@ export class AdaptableController {
1818
this.options = options;
1919
this.appId = appId;
2020
this.adapter = adapter;
21-
this.setFeature();
2221
}
2322

24-
// sets features for Dashboard to consume from features router
25-
setFeature() {}
26-
2723
set adapter(adapter) {
2824
this.validateAdapter(adapter);
2925
this[_adapter] = adapter;

src/Controllers/PushController.js

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,17 @@
1-
import { Parse } from 'parse/node';
2-
import PromiseRouter from '../PromiseRouter';
3-
import rest from '../rest';
1+
import { Parse } from 'parse/node';
2+
import PromiseRouter from '../PromiseRouter';
3+
import rest from '../rest';
44
import AdaptableController from './AdaptableController';
5-
import { PushAdapter } from '../Adapters/Push/PushAdapter';
6-
import deepcopy from 'deepcopy';
7-
import features from '../features';
8-
import RestQuery from '../RestQuery';
9-
import pushStatusHandler from '../pushStatusHandler';
5+
import { PushAdapter } from '../Adapters/Push/PushAdapter';
6+
import deepcopy from 'deepcopy';
7+
import RestQuery from '../RestQuery';
8+
import pushStatusHandler from '../pushStatusHandler';
109

1110
const FEATURE_NAME = 'push';
1211
const UNSUPPORTED_BADGE_KEY = "unsupported";
1312

1413
export class PushController extends AdaptableController {
1514

16-
setFeature() {
17-
features.setFeature(FEATURE_NAME, this.adapter.feature || {});
18-
}
19-
2015
/**
2116
* Check whether the deviceType parameter in qury condition is valid or not.
2217
* @param {Object} where A query condition
@@ -39,9 +34,13 @@ export class PushController extends AdaptableController {
3934
}
4035
}
4136

37+
get pushIsAvailable() {
38+
return !!this.adapter;
39+
}
40+
4241
sendPush(body = {}, where = {}, config, auth, wait) {
4342
var pushAdapter = this.adapter;
44-
if (!pushAdapter) {
43+
if (!this.pushIsAvailable) {
4544
throw new Parse.Error(Parse.Error.PUSH_MISCONFIGURED,
4645
'Push adapter is not available');
4746
}

src/ParseServer.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import { randomString } from './cryptoUtils';
4242
import { RolesRouter } from './Routers/RolesRouter';
4343
import { SchemasRouter } from './Routers/SchemasRouter';
4444
import { SessionsRouter } from './Routers/SessionsRouter';
45-
import { setFeature } from './features';
4645
import { UserController } from './Controllers/UserController';
4746
import { UsersRouter } from './Routers/UsersRouter';
4847

@@ -111,7 +110,6 @@ class ParseServer {
111110
},
112111
liveQuery = {}
113112
}) {
114-
setFeature('serverVersion', parseServerPackage.version);
115113
// Initialize the node client SDK automatically
116114
Parse.initialize(appId, javascriptKey || 'unused', masterKey);
117115
Parse.serverURL = serverURL;

src/Routers/FeaturesRouter.js

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

65
export class FeaturesRouter extends PromiseRouter {
76
mountRoutes() {
8-
this.route('GET','/serverInfo', middleware.promiseEnforceMasterKeyAccess, () => {
7+
this.route('GET','/serverInfo', middleware.promiseEnforceMasterKeyAccess, req => {
8+
const features = {
9+
globalConfig: {
10+
create: false,
11+
read: false,
12+
update: false,
13+
delete: false,
14+
},
15+
hooks: {
16+
create: false,
17+
read: false,
18+
update: false,
19+
delete: false,
20+
},
21+
logs: {
22+
level: false,
23+
size: false,
24+
order: false,
25+
until: false,
26+
from: false,
27+
},
28+
push: {
29+
immediatePush: req.config.pushController.pushIsAvailable,
30+
scheduledPush: false,
31+
storedPushData: false,
32+
pushAudiences: false,
33+
},
34+
schemas: {
35+
addField: true,
36+
removeField: true,
37+
addClass: true,
38+
removeClass: true,
39+
clearAllDataFromClass: false,
40+
exportClass: false,
41+
editClassLevelPermissions: true,
42+
},
43+
};
44+
945
return { response: {
10-
features: getFeatures(),
46+
features: features,
1147
parseServerVersion: version,
1248
} };
1349
});

src/features.js

Lines changed: 0 additions & 92 deletions
This file was deleted.

0 commit comments

Comments
 (0)