Skip to content

Commit 1d9b119

Browse files
author
Joe Niemi
authored
Using api key with digitransit map (#1994)
* Using api key with digitransit map * Typo fix * Use digitransit api key with geocoding urls
1 parent ef843b1 commit 1d9b119

File tree

10 files changed

+37
-9
lines changed

10 files changed

+37
-9
lines changed

.env.example

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CYPRESS_HSLID_READ_ACCESS_USERNAME = <secret>
2+
CYPRESS_HSLID_READ_ACCESS_PASSWORD = <secret>
3+
CYPRESS_HSLID_WRITE_ACCESS_USERNAME = <secret>
4+
CYPRESS_HSLID_WRITE_ACCESS_PASSWORD = <secret>
5+
CYPRESS_HSLID_CLIENT_ID = <secret>
6+
CYPRESS_HSLID_CLIENT_SECRET = <secret>
7+
REACT_APP_DIGITRANSIT_API_KEY = <secret>

.github/workflows/deploy_dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
name: hsldevcom/jore-map-ui
2626
username: ${{ secrets.DOCKERHUB_USERNAME }}
2727
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
28-
buildargs: APP_ENVIRONMENT=dev, APP_DOMAIN_NAME=${{ secrets.APP_DOMAIN_NAME }}, APP_BUILD_DATE=${{ steps.date.outputs.date }}
28+
buildargs: APP_ENVIRONMENT=dev, APP_REACT_APP_DIGITRANSIT_API_KEY=${{ secrets.JOREMAPUI_DIGITRANSITAPIKEY_PROD }} APP_DOMAIN_NAME=${{ secrets.APP_DOMAIN_NAME }}, APP_BUILD_DATE=${{ steps.date.outputs.date }}
2929
tags: develop
3030
- name: Notify of deployment
3131
uses: 8398a7/action-slack@v3

.github/workflows/deploy_prod.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
name: hsldevcom/jore-map-ui
2626
username: ${{ secrets.DOCKERHUB_USERNAME }}
2727
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
28-
buildargs: APP_ENVIRONMENT=prod, APP_DOMAIN_NAME=${{ secrets.APP_DOMAIN_NAME }}, APP_BUILD_DATE=${{ steps.date.outputs.date }}
28+
buildargs: APP_ENVIRONMENT=prod, APP_REACT_APP_DIGITRANSIT_API_KEY=${{ secrets.JOREMAPUI_DIGITRANSITAPIKEY_PROD }}, APP_DOMAIN_NAME=${{ secrets.APP_DOMAIN_NAME }}, APP_BUILD_DATE=${{ steps.date.outputs.date }}
2929
tags: release-prod
3030
- name: Notify of deployment
3131
uses: 8398a7/action-slack@v3

.github/workflows/deploy_stage.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
name: hsldevcom/jore-map-ui
2626
username: ${{ secrets.DOCKERHUB_USERNAME }}
2727
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
28-
buildargs: APP_ENVIRONMENT=stage, APP_DOMAIN_NAME=${{ secrets.APP_DOMAIN_NAME }}, APP_BUILD_DATE=${{ steps.date.outputs.date }}
28+
buildargs: APP_ENVIRONMENT=stage, APP_REACT_APP_DIGITRANSIT_API_KEY=${{ secrets.JOREMAPUI_DIGITRANSITAPIKEY_PROD }}, APP_DOMAIN_NAME=${{ secrets.APP_DOMAIN_NAME }}, APP_BUILD_DATE=${{ steps.date.outputs.date }}
2929
tags: stage
3030
- name: Notify of deployment
3131
uses: 8398a7/action-slack@v3

Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ COPY . ${WORK}
1616
ARG APP_ENVIRONMENT
1717
ENV ENVIRONMENT=${APP_ENVIRONMENT}
1818

19+
ARG APP_REACT_APP_DIGITRANSIT_API_KEY
20+
ENV REACT_APP_DIGITRANSIT_API_KEY=${APP_REACT_APP_DIGITRANSIT_API_KEY}
21+
1922
ARG APP_DOMAIN_NAME
2023
ENV DOMAIN_NAME=${APP_DOMAIN_NAME}
2124

config/env.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ function getClientEnvironment(publicUrl) {
7979
PUBLIC_URL: publicUrl,
8080
ENVIRONMENT: process.env.ENVIRONMENT,
8181
DOMAIN_NAME: process.env.DOMAIN_NAME,
82-
BUILD_DATE: process.env.BUILD_DATE
82+
BUILD_DATE: process.env.BUILD_DATE,
83+
REACT_APP_DIGITRANSIT_API_KEY: process.env.REACT_APP_DIGITRANSIT_API_KEY
8384
}
8485
);
8586
// Stringify all values so we can feed into Webpack DefinePlugin

config/webpack.config.prod.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,9 @@ module.exports = {
301301
new webpack.DefinePlugin({
302302
'process.env.ENVIRONMENT': JSON.stringify(process.env.ENVIRONMENT)
303303
}),
304+
new webpack.DefinePlugin({
305+
'process.env.REACT_APP_DIGITRANSIT_API_KEY': JSON.stringify(process.env.REACT_APP_DIGITRANSIT_API_KEY)
306+
}),
304307
new webpack.DefinePlugin({
305308
'process.env.DOMAIN_NAME': JSON.stringify(process.env.DOMAIN_NAME)
306309
}),

src/components/map/Map.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { MapBaseLayer, MapStore } from '~/stores/mapStore';
1111
import { NodeStore } from '~/stores/nodeStore';
1212
import { RouteListStore } from '~/stores/routeListStore';
1313
import AddressSearch from './AddressSearch';
14+
import constants from '~/constants/constants';
1415
import HighlightEntityLayer from './layers/HighlightEntityLayer';
1516
import NetworkLayers from './layers/NetworkLayers';
1617
import PopupLayer from './layers/PopupLayer';
@@ -163,7 +164,7 @@ class LeafletMap extends React.Component<IMapProps> {
163164
<TileLayer
164165
url={
165166
this.props.mapStore?.visibleMapBaseLayer === MapBaseLayer.DIGITRANSIT
166-
? 'https://cdn.digitransit.fi/map/v2/hsl-map/{z}/{x}/{y}.png'
167+
? `${constants.DIGITRANSIT_MAP_URL}/map/v2/hsl-map/{z}/{x}/{y}.png?digitransit-subscription-key=${constants.DIGITRANSIT_API_KEY}`
167168
: 'https://ortophotos.blob.core.windows.net/hsy-map/hsy_tiles2/{z}/{x}/{y}.jpg'
168169
}
169170
attribution={

src/constants/constants.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,39 @@ const environment: Environment = process.env.ENVIRONMENT
77
let APP_URL = '';
88
let HSL_ID_URL = '';
99
let HSL_ID_CLIENT_ID = '';
10+
let DIGITRANSIT_CACHED_URL_PREFIX = '';
11+
let DIGITRANSIT_NON_CACHED_URL_PREFIX = '';
1012
switch (environment) {
1113
case Environment.LOCALHOST: {
1214
APP_URL = 'http://localhost:3000';
1315
HSL_ID_URL = 'https://hslid-uat.cinfra.fi';
1416
HSL_ID_CLIENT_ID = '6549375356227079';
17+
DIGITRANSIT_CACHED_URL_PREFIX = 'api-dev';
18+
DIGITRANSIT_NON_CACHED_URL_PREFIX = 'api-dev';
1519
break;
1620
}
1721
case Environment.DEV: {
1822
APP_URL = `https://${process.env.ENVIRONMENT}.${process.env.DOMAIN_NAME}`;
1923
HSL_ID_URL = 'https://hslid-uat.cinfra.fi';
2024
HSL_ID_CLIENT_ID = '6549375356227079';
25+
DIGITRANSIT_CACHED_URL_PREFIX = 'cdn';
26+
DIGITRANSIT_NON_CACHED_URL_PREFIX = 'api';
2127
break;
2228
}
2329
case Environment.STAGE: {
2430
APP_URL = `https://${process.env.ENVIRONMENT}.${process.env.DOMAIN_NAME}`;
2531
HSL_ID_URL = 'https://hslid-uat.cinfra.fi';
2632
HSL_ID_CLIENT_ID = '6549375356227079';
33+
DIGITRANSIT_CACHED_URL_PREFIX = 'cdn';
34+
DIGITRANSIT_NON_CACHED_URL_PREFIX = 'api';
2735
break;
2836
}
2937
case Environment.PROD: {
3038
APP_URL = `https://${process.env.DOMAIN_NAME}`;
3139
HSL_ID_URL = 'https://id.hsl.fi';
3240
HSL_ID_CLIENT_ID = '7799731418699567';
41+
DIGITRANSIT_CACHED_URL_PREFIX = 'cdn';
42+
DIGITRANSIT_NON_CACHED_URL_PREFIX = 'api';
3343
break;
3444
}
3545
default: {
@@ -41,6 +51,8 @@ const commonConstants = {
4151
HSL_ID_URL,
4252
HSL_ID_CLIENT_ID,
4353
ENVIRONMENT: environment,
54+
DIGITRANSIT_MAP_URL: `https://${DIGITRANSIT_CACHED_URL_PREFIX}.digitransit.fi`,
55+
DIGITRANSIT_API_KEY: process.env.REACT_APP_DIGITRANSIT_API_KEY,
4456
BUILD_DATE: process.env.BUILD_DATE,
4557
AFTER_LOGIN_URL: `${APP_URL}/afterLogin`,
4658
DECIMALS_IN_GEOMETRIES: 6, // Max value 6 currenlty at joredb columns: numeric(8,6)
@@ -50,9 +62,9 @@ const commonConstants = {
5062
MIN_YEAR: 1970,
5163
MAX_YEAR: 2099,
5264
NEW_OBJECT_TAG: 'new-',
53-
GEOCODING_URL: 'https://api.digitransit.fi/geocoding/v1/search',
65+
GEOCODING_URL: `https://${DIGITRANSIT_NON_CACHED_URL_PREFIX}.digitransit.fi/geocoding/v1/search`,
5466
OSM_REVERSE_GEOCODING_URL: 'https://nominatim.openstreetmap.org/reverse',
55-
DIGITRANSIT_REVERSE_GEOCODING_URL: 'https://api.digitransit.fi/geocoding/v1/reverse',
67+
DIGITRANSIT_REVERSE_GEOCODING_URL: `https://${DIGITRANSIT_NON_CACHED_URL_PREFIX}.digitransit.fi/geocoding/v1/reverse`,
5668
ADDRESS_SEARCH_RESULT_COUNT: 10,
5769
LOCAL_STORAGE_KEY_PREFIX: `${environment}_jore_map_`,
5870
};

src/services/geocodingService.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class GeocodingService {
3838
coordinates: L.LatLng;
3939
searchResultCount: number;
4040
}): Promise<IGeoJSONFeature[] | null> => {
41-
const requestUrl = `${constants.DIGITRANSIT_REVERSE_GEOCODING_URL}?size=${searchResultCount}&point.lat=${coordinates.lat}&point.lon=${coordinates.lng}&zones=1`;
41+
const requestUrl = `${constants.DIGITRANSIT_REVERSE_GEOCODING_URL}?digitransit-subscription-key=${constants.DIGITRANSIT_API_KEY}&size=${searchResultCount}&point.lat=${coordinates.lat}&point.lon=${coordinates.lng}&zones=1`;
4242

4343
const response = await HttpUtils.sendRequest(RequestMethod.GET, encodeURI(requestUrl), {});
4444
return response.features;
@@ -49,10 +49,11 @@ class GeocodingService {
4949
coordinates: L.LatLng
5050
): Promise<IGeoJSONFeature[]> => {
5151
const GEOCODING_URL = constants.GEOCODING_URL;
52+
const DIGITRANSIT_API_KEY = constants.DIGITRANSIT_API_KEY;
5253
const SEARCH_RESULT_COUNT = constants.ADDRESS_SEARCH_RESULT_COUNT;
5354
const lat = coordinates.lat;
5455
const lng = coordinates.lng;
55-
const requestUrl = `${GEOCODING_URL}?text=${value}&size=${SEARCH_RESULT_COUNT}&focus.point.lat=${lat}&focus.point.lon=${lng}`;
56+
const requestUrl = `${GEOCODING_URL}?digitransit-subscription-key=${DIGITRANSIT_API_KEY}&text=${value}&size=${SEARCH_RESULT_COUNT}&focus.point.lat=${lat}&focus.point.lon=${lng}`;
5657

5758
const response = await HttpUtils.sendRequest(RequestMethod.GET, encodeURI(requestUrl), {});
5859
return response.features;

0 commit comments

Comments
 (0)