Skip to content

Commit

Permalink
Handle errors from AskPlaces API and track AskPlaces usage in Amazon …
Browse files Browse the repository at this point in the history
…Pinpoint
  • Loading branch information
Marin Relatic committed Nov 22, 2023
1 parent 8e82433 commit 378492d
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 12 deletions.
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<meta name="keywords" content="Amazon Location Demo" />
<meta
http-equiv="Content-Security-Policy"
content="default-src 'none'; style-src 'self' 'unsafe-inline'; font-src 'self'; object-src 'none'; base-uri 'none'; manifest-src 'self' data: application; worker-src 'self' blob: http://localhost:*; script-src 'self' 'sha256-mP/QMdIFyKsdId6vbeUlTh+6lT95OZPabT+CuUcpVJs=' https://api.mapbox.com; img-src 'self' data: https://*.s3.us-west-2.amazonaws.com https://*.s3.us-east-1.amazonaws.com; frame-src 'self' data: https://*.s3.us-west-2.amazonaws.com https://*.s3.us-east-1.amazonaws.com; connect-src 'self' https://api.mapbox.com https://pinpoint.us-east-1.amazonaws.com https://*.s3.us-west-2.amazonaws.com https://*.s3.us-east-1.amazonaws.com wss://*.iot.us-east-1.amazonaws.com wss://*.iot.us-east-2.amazonaws.com wss://*.iot.us-west-2.amazonaws.com wss://*.iot.ap-southeast-1.amazonaws.com wss://*.iot.ap-southeast-2.amazonaws.com wss://*.iot.ap-northeast-1.amazonaws.com wss://*.iot.ca-central-1.amazonaws.com wss://*.iot.eu-central-1.amazonaws.com wss://*.iot.eu-west-1.amazonaws.com wss://*.iot.eu-west-2.amazonaws.com wss://*.iot.eu-north-1.amazonaws.com wss://*.iot.sa-east-1.amazonaws.com https://dynamodb.us-east-1.amazonaws.com https://dynamodb.us-east-2.amazonaws.com https://dynamodb.us-west-2.amazonaws.com https://dynamodb.ap-southeast-1.amazonaws.com https://dynamodb.ap-southeast-2.amazonaws.com https://dynamodb.ap-northeast-1.amazonaws.com https://dynamodb.ca-central-1.amazonaws.com https://dynamodb.eu-central-1.amazonaws.com https://dynamodb.eu-west-1.amazonaws.com https://dynamodb.eu-west-2.amazonaws.com https://dynamodb.eu-north-1.amazonaws.com https://dynamodb.sa-east-1.amazonaws.com https://cognito-identity.us-east-1.amazonaws.com https://cognito-identity.us-east-2.amazonaws.com https://cognito-identity.us-west-2.amazonaws.com https://cognito-identity.ap-southeast-1.amazonaws.com https://cognito-identity.ap-southeast-2.amazonaws.com https://cognito-identity.ap-northeast-1.amazonaws.com https://cognito-identity.ca-central-1.amazonaws.com https://cognito-identity.eu-central-1.amazonaws.com https://cognito-identity.eu-west-1.amazonaws.com https://cognito-identity.eu-west-2.amazonaws.com https://cognito-identity.eu-north-1.amazonaws.com https://cognito-identity.sa-east-1.amazonaws.com https://iot.us-east-1.amazonaws.com https://iot.us-east-2.amazonaws.com https://iot.us-west-2.amazonaws.com https://iot.ap-southeast-1.amazonaws.com https://iot.ap-southeast-2.amazonaws.com https://iot.ap-northeast-1.amazonaws.com https://iot.ca-central-1.amazonaws.com https://iot.eu-central-1.amazonaws.com https://iot.eu-west-1.amazonaws.com https://iot.eu-west-2.amazonaws.com https://iot.eu-north-1.amazonaws.com https://iot.sa-east-1.amazonaws.com https://maps.geo.us-east-1.amazonaws.com https://maps.geo.us-east-2.amazonaws.com https://maps.geo.us-west-2.amazonaws.com https://maps.geo.ap-southeast-1.amazonaws.com https://maps.geo.ap-southeast-2.amazonaws.com https://maps.geo.ap-northeast-1.amazonaws.com https://maps.geo.ca-central-1.amazonaws.com https://maps.geo.eu-central-1.amazonaws.com https://maps.geo.eu-west-1.amazonaws.com https://maps.geo.eu-west-2.amazonaws.com https://maps.geo.eu-north-1.amazonaws.com https://maps.geo.sa-east-1.amazonaws.com https://places.geo.us-east-1.amazonaws.com https://places.geo.us-east-2.amazonaws.com https://places.geo.us-west-2.amazonaws.com https://places.geo.ap-southeast-1.amazonaws.com https://places.geo.ap-southeast-2.amazonaws.com https://places.geo.ap-northeast-1.amazonaws.com https://places.geo.ca-central-1.amazonaws.com https://places.geo.eu-central-1.amazonaws.com https://places.geo.eu-west-1.amazonaws.com https://places.geo.eu-west-2.amazonaws.com https://places.geo.eu-north-1.amazonaws.com https://places.geo.sa-east-1.amazonaws.com https://routes.geo.us-east-1.amazonaws.com https://routes.geo.us-east-2.amazonaws.com https://routes.geo.us-west-2.amazonaws.com https://routes.geo.ap-southeast-1.amazonaws.com https://routes.geo.ap-southeast-2.amazonaws.com https://routes.geo.ap-northeast-1.amazonaws.com https://routes.geo.ca-central-1.amazonaws.com https://routes.geo.eu-central-1.amazonaws.com https://routes.geo.eu-west-1.amazonaws.com https://routes.geo.eu-west-2.amazonaws.com https://routes.geo.eu-north-1.amazonaws.com https://routes.geo.sa-east-1.amazonaws.com https://geofencing.geo.us-east-1.amazonaws.com https://geofencing.geo.us-east-2.amazonaws.com https://geofencing.geo.us-west-2.amazonaws.com https://geofencing.geo.ap-southeast-1.amazonaws.com https://geofencing.geo.ap-southeast-2.amazonaws.com https://geofencing.geo.ap-northeast-1.amazonaws.com https://geofencing.geo.ca-central-1.amazonaws.com https://geofencing.geo.eu-central-1.amazonaws.com https://geofencing.geo.eu-west-1.amazonaws.com https://geofencing.geo.eu-west-2.amazonaws.com https://geofencing.geo.eu-north-1.amazonaws.com https://geofencing.geo.sa-east-1.amazonaws.com https://*.auth.us-east-1.amazoncognito.com https://*.auth.us-east-2.amazoncognito.com https://*.auth.us-west-2.amazoncognito.com https://*.auth.ap-southeast-1.amazoncognito.com https://*.auth.ap-southeast-2.amazoncognito.com https://*.auth.ap-northeast-1.amazoncognito.com https://*.auth.ca-central-1.amazoncognito.com https://*.auth.eu-central-1.amazoncognito.com https://*.auth.eu-west-1.amazoncognito.com https://*.auth.eu-west-2.amazoncognito.com https://*.auth.eu-north-1.amazoncognito.com https://*.auth.sa-east-1.amazoncognito.com https://cognito-idp.us-east-1.amazonaws.com https://cognito-idp.us-east-2.amazonaws.com https://cognito-idp.us-west-2.amazonaws.com https://cognito-idp.ap-southeast-1.amazonaws.com https://cognito-idp.ap-southeast-2.amazonaws.com https://cognito-idp.ap-northeast-1.amazonaws.com https://cognito-idp.ca-central-1.amazonaws.com https://cognito-idp.eu-central-1.amazonaws.com https://cognito-idp.eu-west-1.amazonaws.com https://cognito-idp.eu-west-2.amazonaws.com https://cognito-idp.eu-north-1.amazonaws.com https://cognito-idp.sa-east-1.amazonaws.com https://*.execute-api.us-east-1.amazonaws.com"
content="default-src 'none'; style-src 'self' 'unsafe-inline'; font-src 'self'; object-src 'none'; base-uri 'none'; manifest-src 'self' data: application; worker-src 'self' blob: http://localhost:*; script-src 'self' 'sha256-mP/QMdIFyKsdId6vbeUlTh+6lT95OZPabT+CuUcpVJs=' https://api.mapbox.com; img-src 'self' data: https://*.s3.us-west-2.amazonaws.com https://*.s3.us-east-1.amazonaws.com; frame-src 'self' data: https://*.s3.us-west-2.amazonaws.com https://*.s3.us-east-1.amazonaws.com; connect-src 'self' https://api.mapbox.com https://pinpoint.us-east-1.amazonaws.com https://pinpoint.us-west-2.amazonaws.com https://*.s3.us-east-1.amazonaws.com https://*.s3.us-west-2.amazonaws.com wss://*.iot.us-east-1.amazonaws.com wss://*.iot.us-east-2.amazonaws.com wss://*.iot.us-west-2.amazonaws.com wss://*.iot.ap-southeast-1.amazonaws.com wss://*.iot.ap-southeast-2.amazonaws.com wss://*.iot.ap-northeast-1.amazonaws.com wss://*.iot.ca-central-1.amazonaws.com wss://*.iot.eu-central-1.amazonaws.com wss://*.iot.eu-west-1.amazonaws.com wss://*.iot.eu-west-2.amazonaws.com wss://*.iot.eu-north-1.amazonaws.com wss://*.iot.sa-east-1.amazonaws.com https://dynamodb.us-east-1.amazonaws.com https://dynamodb.us-east-2.amazonaws.com https://dynamodb.us-west-2.amazonaws.com https://dynamodb.ap-southeast-1.amazonaws.com https://dynamodb.ap-southeast-2.amazonaws.com https://dynamodb.ap-northeast-1.amazonaws.com https://dynamodb.ca-central-1.amazonaws.com https://dynamodb.eu-central-1.amazonaws.com https://dynamodb.eu-west-1.amazonaws.com https://dynamodb.eu-west-2.amazonaws.com https://dynamodb.eu-north-1.amazonaws.com https://dynamodb.sa-east-1.amazonaws.com https://cognito-identity.us-east-1.amazonaws.com https://cognito-identity.us-east-2.amazonaws.com https://cognito-identity.us-west-2.amazonaws.com https://cognito-identity.ap-southeast-1.amazonaws.com https://cognito-identity.ap-southeast-2.amazonaws.com https://cognito-identity.ap-northeast-1.amazonaws.com https://cognito-identity.ca-central-1.amazonaws.com https://cognito-identity.eu-central-1.amazonaws.com https://cognito-identity.eu-west-1.amazonaws.com https://cognito-identity.eu-west-2.amazonaws.com https://cognito-identity.eu-north-1.amazonaws.com https://cognito-identity.sa-east-1.amazonaws.com https://iot.us-east-1.amazonaws.com https://iot.us-east-2.amazonaws.com https://iot.us-west-2.amazonaws.com https://iot.ap-southeast-1.amazonaws.com https://iot.ap-southeast-2.amazonaws.com https://iot.ap-northeast-1.amazonaws.com https://iot.ca-central-1.amazonaws.com https://iot.eu-central-1.amazonaws.com https://iot.eu-west-1.amazonaws.com https://iot.eu-west-2.amazonaws.com https://iot.eu-north-1.amazonaws.com https://iot.sa-east-1.amazonaws.com https://maps.geo.us-east-1.amazonaws.com https://maps.geo.us-east-2.amazonaws.com https://maps.geo.us-west-2.amazonaws.com https://maps.geo.ap-southeast-1.amazonaws.com https://maps.geo.ap-southeast-2.amazonaws.com https://maps.geo.ap-northeast-1.amazonaws.com https://maps.geo.ca-central-1.amazonaws.com https://maps.geo.eu-central-1.amazonaws.com https://maps.geo.eu-west-1.amazonaws.com https://maps.geo.eu-west-2.amazonaws.com https://maps.geo.eu-north-1.amazonaws.com https://maps.geo.sa-east-1.amazonaws.com https://places.geo.us-east-1.amazonaws.com https://places.geo.us-east-2.amazonaws.com https://places.geo.us-west-2.amazonaws.com https://places.geo.ap-southeast-1.amazonaws.com https://places.geo.ap-southeast-2.amazonaws.com https://places.geo.ap-northeast-1.amazonaws.com https://places.geo.ca-central-1.amazonaws.com https://places.geo.eu-central-1.amazonaws.com https://places.geo.eu-west-1.amazonaws.com https://places.geo.eu-west-2.amazonaws.com https://places.geo.eu-north-1.amazonaws.com https://places.geo.sa-east-1.amazonaws.com https://routes.geo.us-east-1.amazonaws.com https://routes.geo.us-east-2.amazonaws.com https://routes.geo.us-west-2.amazonaws.com https://routes.geo.ap-southeast-1.amazonaws.com https://routes.geo.ap-southeast-2.amazonaws.com https://routes.geo.ap-northeast-1.amazonaws.com https://routes.geo.ca-central-1.amazonaws.com https://routes.geo.eu-central-1.amazonaws.com https://routes.geo.eu-west-1.amazonaws.com https://routes.geo.eu-west-2.amazonaws.com https://routes.geo.eu-north-1.amazonaws.com https://routes.geo.sa-east-1.amazonaws.com https://geofencing.geo.us-east-1.amazonaws.com https://geofencing.geo.us-east-2.amazonaws.com https://geofencing.geo.us-west-2.amazonaws.com https://geofencing.geo.ap-southeast-1.amazonaws.com https://geofencing.geo.ap-southeast-2.amazonaws.com https://geofencing.geo.ap-northeast-1.amazonaws.com https://geofencing.geo.ca-central-1.amazonaws.com https://geofencing.geo.eu-central-1.amazonaws.com https://geofencing.geo.eu-west-1.amazonaws.com https://geofencing.geo.eu-west-2.amazonaws.com https://geofencing.geo.eu-north-1.amazonaws.com https://geofencing.geo.sa-east-1.amazonaws.com https://*.auth.us-east-1.amazoncognito.com https://*.auth.us-east-2.amazoncognito.com https://*.auth.us-west-2.amazoncognito.com https://*.auth.ap-southeast-1.amazoncognito.com https://*.auth.ap-southeast-2.amazoncognito.com https://*.auth.ap-northeast-1.amazoncognito.com https://*.auth.ca-central-1.amazoncognito.com https://*.auth.eu-central-1.amazoncognito.com https://*.auth.eu-west-1.amazoncognito.com https://*.auth.eu-west-2.amazoncognito.com https://*.auth.eu-north-1.amazoncognito.com https://*.auth.sa-east-1.amazoncognito.com https://cognito-idp.us-east-1.amazonaws.com https://cognito-idp.us-east-2.amazonaws.com https://cognito-idp.us-west-2.amazonaws.com https://cognito-idp.ap-southeast-1.amazonaws.com https://cognito-idp.ap-southeast-2.amazonaws.com https://cognito-idp.ap-northeast-1.amazonaws.com https://cognito-idp.ca-central-1.amazonaws.com https://cognito-idp.eu-central-1.amazonaws.com https://cognito-idp.eu-west-1.amazonaws.com https://cognito-idp.eu-west-2.amazonaws.com https://cognito-idp.eu-north-1.amazonaws.com https://cognito-idp.sa-east-1.amazonaws.com https://*.execute-api.us-east-1.amazonaws.com https://*.execute-api.us-west-2.amazonaws.com"
/>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 9 additions & 8 deletions src/hooks/useAwsPlace.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { useAmplifyMap } from "@demo/hooks";
import { useAwsPlaceService } from "@demo/services";
import { useAwsPlaceStore } from "@demo/stores";
import { ClustersType, SuggestionType, ViewPointType } from "@demo/types";
import { EventTypeEnum, TriggeredByEnum } from "@demo/types/Enums";
import { AnalyticsPlaceSearchTypeEnum, EventTypeEnum, TriggeredByEnum } from "@demo/types/Enums";
import { record } from "@demo/utils/analyticsUtils";
import { errorHandler } from "@demo/utils/errorHandler";
import { calculateClusters, getHash, getPrecision, isGeoString } from "@demo/utils/geoCalculation";
Expand Down Expand Up @@ -151,14 +151,15 @@ const useAwsPlace = () => {
action: string,
isNLSearchEnabled = false
) => {
let placeSearchType = AnalyticsPlaceSearchTypeEnum.TEXT;
if (isGeoString(value)) {
await methods.searchPlacesByCoordinates(value, viewpoint, cb);
} else if (exact) {
if (isNLSearchEnabled) {
await methods.searchNLPlacesByText(value, viewpoint, cb);
} else {
await methods.searchPlacesByText(value, viewpoint, cb);
}
placeSearchType = AnalyticsPlaceSearchTypeEnum.COORDINATES;
} else if (exact && isNLSearchEnabled) {
await methods.searchNLPlacesByText(value, viewpoint, cb);
placeSearchType = AnalyticsPlaceSearchTypeEnum.NATURAL_LANGUAGE_TEXT;
} else if (exact && !isNLSearchEnabled) {
await methods.searchPlacesByText(value, viewpoint, cb);
} else if (value?.length) {
await methods.searchPlaceSuggestions(value, viewpoint, cb);
}
Expand All @@ -168,7 +169,7 @@ const useAwsPlace = () => {
EventType: EventTypeEnum.PLACE_SEARCH,
Attributes: {
exact: String(exact),
type: isGeoString(value) ? "Coordinates" : "Text",
type: placeSearchType,
triggeredBy,
action
}
Expand Down
6 changes: 5 additions & 1 deletion src/services/useAwsPlaceService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,11 @@ const useAwsPlaceService = () => {
"x-api-key": NL_API_KEY
}
});
return await response.json();
const responseBody = await response.json();
if (response.status !== 200) {
throw new Error(responseBody.message);
}
return responseBody;
}
}),
[config, locationClient, currentMapProvider, viewpoint]
Expand Down
6 changes: 6 additions & 0 deletions src/types/Enums.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,12 @@ export enum EventTypeEnum {
HELP_SEARCH = "HELP_SEARCH"
}

export enum AnalyticsPlaceSearchTypeEnum {
COORDINATES = "Coordinates",
NATURAL_LANGUAGE_TEXT = "NaturalLanguageText",
TEXT = "Text"
}

export enum AnalyticsSessionStatus {
CREATED = "CREATED",
NOT_CREATED = "NOT_CREATED",
Expand Down

0 comments on commit 378492d

Please sign in to comment.