Skip to content

Commit ce3ec95

Browse files
committed
Start work on updating compatibility with new dependencies.
1 parent e78ae13 commit ce3ec95

File tree

11 files changed

+663
-755
lines changed

11 files changed

+663
-755
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"graphql": "^16.9.0",
1414
"react": "^18.3.1",
1515
"react-dom": "^18.3.1",
16-
"react-router-dom": "^5.3.4",
16+
"react-router-dom": "^6.28.0",
1717
"react-scripts": "^5.0.1"
1818
},
1919
"scripts": {

src/App.js

Lines changed: 19 additions & 219 deletions
Original file line numberDiff line numberDiff line change
@@ -1,226 +1,26 @@
11
import React from 'react';
2-
import { BrowserRouter as Router, Route, Redirect } from 'react-router-dom';
2+
import { BrowserRouter, Route, Routes, Navigate } from 'react-router-dom';
33

4-
import GraphiQL from './GraphiQL';
5-
import {
6-
API_VERSION_1,
7-
API_VERSION_2,
8-
DIALECT_VERSION_1,
9-
API_TYPE,
10-
API_CONFIG,
11-
} from './constants';
12-
13-
/**
14-
* @param {String} apiType API_TYPE.DEV or API_TYPE.PROD
15-
* @param {String} apiVersion 'v1' or 'v2'
16-
* @param {String} router router name (eg. 'hsl', 'waltti', ...)
17-
* @param {String} dialect api dialect (eg. 'gtfs' or 'transmodel')
18-
* @param {String} dialectVersion version of the api dialect (eg. 'v1')
19-
* @returns
20-
*/
21-
const buildUrl = (apiType, apiVersion, router, dialect, dialectVersion) => {
22-
const apiPath =
23-
apiVersion === API_VERSION_1
24-
? `routers/${router}/index/graphql`
25-
: `${router}/${dialect}/${dialectVersion}`;
26-
return `https://${
27-
apiType === API_TYPE.DEV
28-
? API_CONFIG[API_TYPE.DEV].URL
29-
: API_CONFIG[API_TYPE.PROD].URL
30-
}/routing/${apiVersion}/${apiPath}`;
31-
};
32-
33-
const configs = [
34-
{
35-
router: 'hsl',
36-
api: {
37-
[API_VERSION_1]: {
38-
title: 'HSL (v1 Deprecated)',
39-
routerUrl: {
40-
[API_TYPE.DEV]: buildUrl(API_TYPE.DEV, API_VERSION_1, 'hsl'),
41-
[API_TYPE.PROD]: buildUrl(API_TYPE.PROD, API_VERSION_1, 'hsl'),
42-
},
43-
},
44-
[API_VERSION_2]: {
45-
title: 'HSL (v2)',
46-
dialect: {
47-
gtfs: {
48-
[DIALECT_VERSION_1]: {
49-
default: true,
50-
title: 'GTFS (v1)',
51-
routerUrl: {
52-
[API_TYPE.DEV]: buildUrl(
53-
API_TYPE.DEV,
54-
API_VERSION_2,
55-
'hsl',
56-
'gtfs',
57-
DIALECT_VERSION_1,
58-
),
59-
[API_TYPE.PROD]: buildUrl(
60-
API_TYPE.PROD,
61-
API_VERSION_2,
62-
'hsl',
63-
'gtfs',
64-
DIALECT_VERSION_1,
65-
),
66-
},
67-
},
68-
},
69-
},
70-
},
71-
},
72-
},
73-
{
74-
router: 'waltti',
75-
api: {
76-
[API_VERSION_1]: {
77-
title: 'Waltti (v1 Deprecated)',
78-
routerUrl: {
79-
[API_TYPE.DEV]: buildUrl(API_TYPE.DEV, API_VERSION_1, 'waltti'),
80-
[API_TYPE.PROD]: buildUrl(API_TYPE.PROD, API_VERSION_1, 'waltti'),
81-
},
82-
},
83-
[API_VERSION_2]: {
84-
title: 'Waltti (v2)',
85-
dialect: {
86-
gtfs: {
87-
[DIALECT_VERSION_1]: {
88-
default: true,
89-
title: 'GTFS (v1)',
90-
routerUrl: {
91-
[API_TYPE.DEV]: buildUrl(
92-
API_TYPE.DEV,
93-
API_VERSION_2,
94-
'waltti',
95-
'gtfs',
96-
DIALECT_VERSION_1,
97-
),
98-
[API_TYPE.PROD]: buildUrl(
99-
API_TYPE.PROD,
100-
API_VERSION_2,
101-
'waltti',
102-
'gtfs',
103-
DIALECT_VERSION_1,
104-
),
105-
},
106-
},
107-
},
108-
},
109-
},
110-
},
111-
},
112-
{
113-
router: 'waltti-alt',
114-
api: {
115-
[API_VERSION_2]: {
116-
title: 'Waltti alt. (v2)',
117-
dialect: {
118-
gtfs: {
119-
[DIALECT_VERSION_1]: {
120-
default: true,
121-
title: 'GTFS (v1)',
122-
routerUrl: {
123-
[API_TYPE.DEV]: buildUrl(
124-
API_TYPE.DEV,
125-
API_VERSION_2,
126-
'waltti-alt',
127-
'gtfs',
128-
DIALECT_VERSION_1,
129-
),
130-
[API_TYPE.PROD]: buildUrl(
131-
API_TYPE.PROD,
132-
API_VERSION_2,
133-
'waltti-alt',
134-
'gtfs',
135-
DIALECT_VERSION_1,
136-
),
137-
},
138-
},
139-
},
140-
},
141-
},
142-
},
143-
},
144-
{
145-
router: 'finland',
146-
api: {
147-
[API_VERSION_1]: {
148-
title: 'Finland (v1 Deprecated)',
149-
routerUrl: {
150-
[API_TYPE.DEV]: buildUrl(API_TYPE.DEV, API_VERSION_1, 'finland'),
151-
[API_TYPE.PROD]: buildUrl(API_TYPE.PROD, API_VERSION_1, 'finland'),
152-
},
153-
},
154-
[API_VERSION_2]: {
155-
title: 'Finland (v2)',
156-
dialect: {
157-
gtfs: {
158-
[DIALECT_VERSION_1]: {
159-
default: true,
160-
title: 'GTFS (v1)',
161-
routerUrl: {
162-
[API_TYPE.DEV]: buildUrl(
163-
API_TYPE.DEV,
164-
API_VERSION_2,
165-
'finland',
166-
'gtfs',
167-
DIALECT_VERSION_1,
168-
),
169-
[API_TYPE.PROD]: buildUrl(
170-
API_TYPE.PROD,
171-
API_VERSION_2,
172-
'finland',
173-
'gtfs',
174-
DIALECT_VERSION_1,
175-
),
176-
},
177-
},
178-
},
179-
},
180-
},
181-
},
182-
},
183-
{
184-
router: 'varely',
185-
api: {
186-
[API_VERSION_2]: {
187-
title: 'VARELY (v2)',
188-
dialect: {
189-
gtfs: {
190-
[DIALECT_VERSION_1]: {
191-
default: true,
192-
title: 'GTFS (v1)',
193-
routerUrl: {
194-
[API_TYPE.DEV]: buildUrl(
195-
API_TYPE.DEV,
196-
API_VERSION_2,
197-
'varely',
198-
'gtfs',
199-
DIALECT_VERSION_1,
200-
),
201-
[API_TYPE.PROD]: buildUrl(
202-
API_TYPE.PROD,
203-
API_VERSION_2,
204-
'varely',
205-
'gtfs',
206-
DIALECT_VERSION_1,
207-
),
208-
},
209-
},
210-
},
211-
},
212-
},
213-
},
214-
},
215-
];
4+
import { API_VERSION_1, API_VERSION_2 } from './config';
5+
import DefaultApiRoute from './DefaultApiRoute';
6+
import Version1ApiRoute from './Version1ApiRoute';
7+
import Version2ApiRoute from './Version2ApiRoute';
2168

2179
export default () => {
21810
return (
219-
<Router basename="/graphiql">
220-
<GraphiQL configs={configs} />
221-
<Route path="/" exact>
222-
<Redirect to="/hsl" />
223-
</Route>
224-
</Router>
11+
<BrowserRouter basename="/graphiql">
12+
<Routes>
13+
<Route path="/" exact element={<Navigate to="/hsl" />} />
14+
<Route path="/:router" element={<DefaultApiRoute />} />
15+
<Route
16+
path={`/:router/${API_VERSION_1}`}
17+
element={<Version1ApiRoute />}
18+
/>
19+
<Route
20+
path={`/:router/${API_VERSION_2}/:dialect/:dialectVersion`}
21+
element={<Version2ApiRoute />}
22+
/>
23+
</Routes>
24+
</BrowserRouter>
22525
);
22626
};

0 commit comments

Comments
 (0)