-
-
Notifications
You must be signed in to change notification settings - Fork 91
/
location_api_By_Yasas.js
39 lines (32 loc) · 1.04 KB
/
location_api_By_Yasas.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const API_KEY = "YOUR_GOOGLE_API_KEY";
const axios = require("axios");
async function getCoordsForAddress(address) {
const url = `https://maps.googleapis.com/maps/api/geocode/json?address=${encodeURIComponent(
address
)}&key=${API_KEY}
`;
const response = await axios.get(url);
const data = response.data;
if (!data || data.status === "ZERO_RESULTS") {
const error = new HttpError("Could not find the location", 422);
throw error;
}
if (data.status === "REQUEST_DENIED") {
const error = new HttpError("REQUEST_DENIED" + data.error_message, 422);
throw error;
}
const coordinates = data.results[0].geometry.location;
return coordinates;
}
// Custom Error Handler
class HttpError extends Error {
constructor(message, errorCode) {
super(message); //Add a 'message' property super class-Error
this.code = errorCode; //Adds a "code" property
}
}
// module.exports = getCoordsForAddress;
// module.exports = HttpError;
// Contributed by - Yasas Sandeepa
// Undergraduate- University of Moratuwa
// Sri Lanka