@shophost/rest-api 2.0.18 → 2.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import axios from "axios";
|
|
2
|
+
import axios, { isAxiosError } from "axios";
|
|
3
|
+
import { logger } from "../../core/logging/pino";
|
|
3
4
|
class LocationService {
|
|
4
5
|
constructor(apiKey) {
|
|
5
6
|
this.apiKey = apiKey;
|
|
@@ -16,27 +17,44 @@ class LocationService {
|
|
|
16
17
|
*/
|
|
17
18
|
getPredictions(query, radius) {
|
|
18
19
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
var _a, _b, _c;
|
|
19
21
|
if (!query || query.trim() === "" || query.length < 3) {
|
|
20
22
|
return [];
|
|
21
23
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
try {
|
|
25
|
+
const { data } = yield this.client.post("/places:autocomplete", {
|
|
26
|
+
input: query,
|
|
27
|
+
locationBias: {
|
|
28
|
+
circle: {
|
|
29
|
+
center: {
|
|
30
|
+
latitude: 37.7937,
|
|
31
|
+
longitude: -122.3965,
|
|
32
|
+
},
|
|
33
|
+
radius: radius || 100000,
|
|
29
34
|
},
|
|
30
|
-
radius: radius || 100000,
|
|
31
35
|
},
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
36
|
+
});
|
|
37
|
+
return data.suggestions.map(({ placePrediction }) => ({
|
|
38
|
+
placeId: placePrediction.placeId,
|
|
39
|
+
text: placePrediction.text.text,
|
|
40
|
+
addressLineOne: placePrediction.structuredFormat.mainText.text,
|
|
41
|
+
addressLineTwo: placePrediction.structuredFormat.secondaryText.text,
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
if (isAxiosError(error)) {
|
|
46
|
+
logger.error({
|
|
47
|
+
status: (_a = error.response) === null || _a === void 0 ? void 0 : _a.status,
|
|
48
|
+
statusText: (_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText,
|
|
49
|
+
data: (_c = error.response) === null || _c === void 0 ? void 0 : _c.data,
|
|
50
|
+
query,
|
|
51
|
+
}, "Google Places Autocomplete request failed");
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
logger.error({ err: error, query }, "Unexpected error during Places Autocomplete");
|
|
55
|
+
}
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
40
58
|
});
|
|
41
59
|
}
|
|
42
60
|
findDistanceBetweenCoordinates(from, to) {
|
|
@@ -62,12 +80,30 @@ class LocationService {
|
|
|
62
80
|
}
|
|
63
81
|
getPlaceDetails(placeId) {
|
|
64
82
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
83
|
+
var _a, _b, _c;
|
|
84
|
+
let data;
|
|
85
|
+
try {
|
|
86
|
+
const response = yield this.client.get(`/places/${placeId}`, {
|
|
87
|
+
headers: {
|
|
88
|
+
"X-Goog-FieldMask": "addressComponents,adrFormatAddress,formattedAddress,location,plusCode,postalAddress,shortFormattedAddress,types",
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
data = response.data;
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (isAxiosError(error)) {
|
|
95
|
+
logger.error({
|
|
96
|
+
status: (_a = error.response) === null || _a === void 0 ? void 0 : _a.status,
|
|
97
|
+
statusText: (_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText,
|
|
98
|
+
data: (_c = error.response) === null || _c === void 0 ? void 0 : _c.data,
|
|
99
|
+
placeId,
|
|
100
|
+
}, "Google Place Details request failed");
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
logger.error({ err: error, placeId }, "Unexpected error during Place Details");
|
|
104
|
+
}
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
71
107
|
const result = {
|
|
72
108
|
addressLineOne: "",
|
|
73
109
|
zipCode: "",
|
|
@@ -76,7 +112,6 @@ class LocationService {
|
|
|
76
112
|
latitude: data.location.latitude,
|
|
77
113
|
longitude: data.location.longitude,
|
|
78
114
|
};
|
|
79
|
-
// Process address components to extract zipCode, countryCode and city
|
|
80
115
|
if (!data.addressComponents) {
|
|
81
116
|
return result;
|
|
82
117
|
}
|
|
@@ -88,15 +123,12 @@ class LocationService {
|
|
|
88
123
|
result.addressLineOne =
|
|
89
124
|
component.shortText + " " + result.addressLineOne;
|
|
90
125
|
}
|
|
91
|
-
// Find postal code
|
|
92
126
|
if (component.types.includes("postal_code")) {
|
|
93
127
|
result.zipCode = component.shortText;
|
|
94
128
|
}
|
|
95
|
-
// Find country code
|
|
96
129
|
if (component.types.includes("country")) {
|
|
97
130
|
result.country = component.shortText;
|
|
98
131
|
}
|
|
99
|
-
// Find city
|
|
100
132
|
if (component.types.includes("locality")) {
|
|
101
133
|
result.city = component.longText;
|
|
102
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/location/location.service.ts"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"location.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/location/location.service.ts"],"names":[],"mappings":"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"}
|