Skip to content

Commit e2722a8

Browse files
committed
fix(gtfs-api): use post method for long variable lists in graphql queries
1 parent b632710 commit e2722a8

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

lib/gtfs/actions/general.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import fetch from 'isomorphic-fetch'
2+
23
import { clearStops } from './stops'
34
import { clearPatterns } from './patterns'
45
import { clearRoutes } from './routes'
@@ -13,13 +14,15 @@ export function clearGtfsElements () {
1314
dispatch(clearPatterns())
1415
}
1516
}
17+
1618
function requestGtfsElements (feedIds, entities) {
1719
return {
1820
type: 'REQUESTING_GTFS_ELEMENTS',
1921
feedIds,
2022
entities
2123
}
2224
}
25+
2326
function receivedGtfsElements (feedIds, stops, patterns) {
2427
return {
2528
type: 'RECEIVED_GTFS_ELEMENTS',
@@ -28,6 +31,7 @@ function receivedGtfsElements (feedIds, stops, patterns) {
2831
patterns
2932
}
3033
}
34+
3135
export const requestStopsAndRoutes = (feedIds, routeids, stopIds, module) => {
3236
return {
3337
type: 'REQUEST_GTFS_STOPS_AND_ROUTES',
@@ -37,13 +41,15 @@ export const requestStopsAndRoutes = (feedIds, routeids, stopIds, module) => {
3741
module
3842
}
3943
}
44+
4045
export const receivedStopsAndRoutes = (results, module) => {
4146
return {
4247
type: 'RECEIVED_GTFS_STOPS_AND_ROUTES',
4348
results,
4449
module
4550
}
4651
}
52+
4753
export function fetchStopsAndRoutes (entities, module) {
4854
return function (dispatch, getState) {
4955
const activeProject = getActiveProject(getState())
@@ -66,16 +72,18 @@ export function fetchStopsAndRoutes (entities, module) {
6672
stopId.push(e.entity.StopId)
6773
}
6874
})
75+
const method = 'post'
76+
const body = JSON.stringify({
77+
query: stopsAndRoutes(feedId, routeId, stopId),
78+
variables: JSON.stringify({feedId, routeId, stopId})
79+
})
6980
dispatch(requestStopsAndRoutes(feedId, routeId, stopId, module))
70-
return fetch(compose(stopsAndRoutes(feedId, routeId, stopId), {feedId, routeId, stopId}))
71-
.then((response) => {
72-
return response.json()
73-
})
74-
.then(results => {
75-
return dispatch(receivedStopsAndRoutes(results, module))
76-
})
81+
return fetch(`/api/manager/graphql`, {method, body})
82+
.then(response => response.json())
83+
.then(results => dispatch(receivedStopsAndRoutes(results, module)))
7784
}
7885
}
86+
7987
export function refreshGtfsElements (feedId, entities) {
8088
return function (dispatch, getState) {
8189
dispatch(requestGtfsElements(feedId, entities))

0 commit comments

Comments
 (0)