Skip to content

Mark push as enabled in serverInfo endpoint #1164

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 25, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 1 addition & 25 deletions spec/features.spec.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,9 @@
'use strict';

var features = require('../src/features');
const request = require("request");

describe('features', () => {
it('set and get features', (done) => {
features.setFeature('push', {
testOption1: true,
testOption2: false
});

var _features = features.getFeatures();

var expected = {
testOption1: true,
testOption2: false
};

expect(_features.push).toEqual(expected);
done();
});

it('get features that does not exist', (done) => {
var _features = features.getFeatures();
expect(_features.test).toBeUndefined();
done();
});

it('requires the master key to get all schemas', done => {
it('requires the master key to get features', done => {
request.get({
url: 'http://localhost:8378/1/serverInfo',
json: true,
Expand Down
4 changes: 0 additions & 4 deletions src/Controllers/AdaptableController.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,8 @@ export class AdaptableController {
this.options = options;
this.appId = appId;
this.adapter = adapter;
this.setFeature();
}

// sets features for Dashboard to consume from features router
setFeature() {}

set adapter(adapter) {
this.validateAdapter(adapter);
this[_adapter] = adapter;
Expand Down
25 changes: 12 additions & 13 deletions src/Controllers/PushController.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,17 @@
import { Parse } from 'parse/node';
import PromiseRouter from '../PromiseRouter';
import rest from '../rest';
import { Parse } from 'parse/node';
import PromiseRouter from '../PromiseRouter';
import rest from '../rest';
import AdaptableController from './AdaptableController';
import { PushAdapter } from '../Adapters/Push/PushAdapter';
import deepcopy from 'deepcopy';
import features from '../features';
import RestQuery from '../RestQuery';
import pushStatusHandler from '../pushStatusHandler';
import { PushAdapter } from '../Adapters/Push/PushAdapter';
import deepcopy from 'deepcopy';
import RestQuery from '../RestQuery';
import pushStatusHandler from '../pushStatusHandler';

const FEATURE_NAME = 'push';
const UNSUPPORTED_BADGE_KEY = "unsupported";

export class PushController extends AdaptableController {

setFeature() {
features.setFeature(FEATURE_NAME, this.adapter.feature || {});
}

/**
* Check whether the deviceType parameter in qury condition is valid or not.
* @param {Object} where A query condition
Expand All @@ -39,9 +34,13 @@ export class PushController extends AdaptableController {
}
}

get pushIsAvailable() {
return !!this.adapter;
}

sendPush(body = {}, where = {}, config, auth, wait) {
var pushAdapter = this.adapter;
if (!pushAdapter) {
if (!this.pushIsAvailable) {
throw new Parse.Error(Parse.Error.PUSH_MISCONFIGURED,
'Push adapter is not available');
}
Expand Down
2 changes: 0 additions & 2 deletions src/ParseServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ import { randomString } from './cryptoUtils';
import { RolesRouter } from './Routers/RolesRouter';
import { SchemasRouter } from './Routers/SchemasRouter';
import { SessionsRouter } from './Routers/SessionsRouter';
import { setFeature } from './features';
import { UserController } from './Controllers/UserController';
import { UsersRouter } from './Routers/UsersRouter';

Expand Down Expand Up @@ -111,7 +110,6 @@ class ParseServer {
},
liveQuery = {}
}) {
setFeature('serverVersion', parseServerPackage.version);
// Initialize the node client SDK automatically
Parse.initialize(appId, javascriptKey || 'unused', masterKey);
Parse.serverURL = serverURL;
Expand Down
42 changes: 39 additions & 3 deletions src/Routers/FeaturesRouter.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,49 @@
import { version } from '../../package.json';
import PromiseRouter from '../PromiseRouter';
import * as middleware from "../middlewares";
import { getFeatures } from '../features';

export class FeaturesRouter extends PromiseRouter {
mountRoutes() {
this.route('GET','/serverInfo', middleware.promiseEnforceMasterKeyAccess, () => {
this.route('GET','/serverInfo', middleware.promiseEnforceMasterKeyAccess, req => {
const features = {
globalConfig: {
create: false,
read: false,
update: false,
delete: false,
},
hooks: {
create: false,
read: false,
update: false,
delete: false,
},
logs: {
level: false,
size: false,
order: false,
until: false,
from: false,
},
push: {
immediatePush: req.config.pushController.pushIsAvailable,
scheduledPush: false,
storedPushData: false,
pushAudiences: false,
},
schemas: {
addField: true,
removeField: true,
addClass: true,
removeClass: true,
clearAllDataFromClass: false,
exportClass: false,
editClassLevelPermissions: true,
},
};

return { response: {
features: getFeatures(),
features: features,
parseServerVersion: version,
} };
});
Expand Down
92 changes: 0 additions & 92 deletions src/features.js

This file was deleted.