Skip to content

Commit dd59dde

Browse files
flovilmartshivangagarwal
authored andcommitted
Makes sure routes don't overlap and yield a header set error (parse-community#2559)
1 parent 0468fcb commit dd59dde

File tree

4 files changed

+19
-14
lines changed

4 files changed

+19
-14
lines changed

src/Controllers/AnalyticsController.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import AdaptableController from './AdaptableController';
22
import { AnalyticsAdapter } from '../Adapters/Analytics/AnalyticsAdapter';
33

4+
const AppOpenedEventName = 'AppOpened';
5+
46
export class AnalyticsController extends AdaptableController {
57
appOpened(req) {
68
return this.adapter.appOpened(req.body, req).then(
@@ -12,12 +14,17 @@ export class AnalyticsController extends AdaptableController {
1214
}
1315

1416
trackEvent(req) {
15-
return this.adapter.trackEvent(req.params.eventName, req.body, req).then(
16-
function(response) {
17-
return { response: response };
18-
}).catch((err) => {
19-
return { response: {} };
20-
});
17+
const eventName = req.params.eventName;
18+
if (eventName === AppOpenedEventName) {
19+
return this.appOpened(req);
20+
}
21+
return Promise.resolve().then(() => {
22+
return this.adapter.trackEvent(eventName, req.body, req);
23+
}).then((response) => {
24+
return { response: response || {} };
25+
}).catch((err) => {
26+
return { response: {} };
27+
});
2128
}
2229

2330
expectedAdapterType() {

src/Routers/AnalyticsRouter.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
// AnalyticsRouter.js
22
import PromiseRouter from '../PromiseRouter';
33

4-
function appOpened(req) {
5-
const analyticsController = req.config.analyticsController;
6-
return analyticsController.appOpened(req);
7-
}
8-
94
function trackEvent(req) {
105
const analyticsController = req.config.analyticsController;
116
return analyticsController.trackEvent(req);
@@ -14,7 +9,6 @@ function trackEvent(req) {
149

1510
export class AnalyticsRouter extends PromiseRouter {
1611
mountRoutes() {
17-
this.route('POST','/events/AppOpened', appOpened);
1812
this.route('POST','/events/:eventName', trackEvent);
1913
}
2014
}

src/Routers/SessionsRouter.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ export class SessionsRouter extends ClassesRouter {
1111
}
1212

1313
handleGet(req) {
14+
if (req.params.objectId === 'me') {
15+
return this.handleMe(req);
16+
}
1417
req.params.className = '_Session';
1518
return super.handleGet(req);
1619
}
@@ -49,7 +52,6 @@ export class SessionsRouter extends ClassesRouter {
4952
}
5053

5154
mountRoutes() {
52-
this.route('GET','/sessions/me', req => { return this.handleMe(req); });
5355
this.route('GET', '/sessions', req => { return this.handleFind(req); });
5456
this.route('GET', '/sessions/:objectId', req => { return this.handleGet(req); });
5557
this.route('POST', '/sessions', req => { return this.handleCreate(req); });

src/Routers/UsersRouter.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ export class UsersRouter extends ClassesRouter {
1818
}
1919

2020
handleGet(req) {
21+
if (req.params.objectId === 'me') {
22+
return this.handleMe(req);
23+
}
2124
req.params.className = '_User';
2225
return super.handleGet(req);
2326
}
@@ -198,7 +201,6 @@ export class UsersRouter extends ClassesRouter {
198201
mountRoutes() {
199202
this.route('GET', '/users', req => { return this.handleFind(req); });
200203
this.route('POST', '/users', req => { return this.handleCreate(req); });
201-
this.route('GET', '/users/me', req => { return this.handleMe(req); });
202204
this.route('GET', '/users/:objectId', req => { return this.handleGet(req); });
203205
this.route('PUT', '/users/:objectId', req => { return this.handleUpdate(req); });
204206
this.route('DELETE', '/users/:objectId', req => { return this.handleDelete(req); });

0 commit comments

Comments
 (0)