Skip to content

Commit 3541bd5

Browse files
committed
added methods and
Added methods and for the implementation of Astronomy API
1 parent bfd7550 commit 3541bd5

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

src/main/java/io/ipgeolocation/api/IPGeolocationAPI.java

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,28 @@ public List<UserAgent> getBulkUserAgent(String[] uaStrings) {
161161
return userAgents;
162162
}
163163

164+
public Astronomy getAstronomy() {
165+
return getAstronomy(null);
166+
}
167+
168+
public Astronomy getAstronomy(AstronomyParams params) {
169+
final JSONObject apiResponse =
170+
(JSONObject)
171+
callAPIEndpoint("astronomy",
172+
buildAstronomyUrlParams(params),
173+
"GET",
174+
null,
175+
false);
176+
final Astronomy astronomy;
177+
178+
try {
179+
astronomy = new Astronomy(apiResponse);
180+
} catch (IllegalArgumentException e) {
181+
throw new IPGeolocationError(e);
182+
}
183+
return astronomy;
184+
}
185+
164186
private String buildGeolocationUrlParams(final GeolocationParams params) {
165187
final StringBuilder urlParams = new StringBuilder();
166188

@@ -259,6 +281,43 @@ private String buildTimezoneUrlParams(final TimezoneParams params) {
259281
return urlParams.toString();
260282
}
261283

284+
private String buildAstronomyUrlParams(final AstronomyParams params) {
285+
final StringBuilder urlParams = new StringBuilder();
286+
287+
urlParams.append("apiKey=");
288+
urlParams.append(apiKey);
289+
290+
if (!Objects.isNull(params)) {
291+
if (!Strings.isNullOrEmpty(params.getIpAddress())) {
292+
urlParams.append("&ip=");
293+
urlParams.append(params.getIpAddress());
294+
}
295+
296+
if (!Strings.isNullOrEmpty(params.getLocation())) {
297+
urlParams.append("&location=");
298+
urlParams.append(params.getLocation());
299+
}
300+
301+
if (!Objects.isNull(params.getLatitude()) && !Objects.isNull(params.getLongitude())) {
302+
urlParams.append("&lat=");
303+
urlParams.append(params.getLatitude());
304+
urlParams.append("&long=");
305+
urlParams.append(params.getLongitude());
306+
}
307+
308+
if (!Strings.isNullOrEmpty(params.getLang())) {
309+
urlParams.append("&lang=");
310+
urlParams.append(params.getLang());
311+
}
312+
313+
if (!Strings.isNullOrEmpty(params.getDate())) {
314+
urlParams.append("&date=");
315+
urlParams.append(params.getDate());
316+
}
317+
}
318+
return urlParams.toString();
319+
}
320+
262321
private Object callAPIEndpoint(
263322
final String endpoint,
264323
final String requestParams,

0 commit comments

Comments
 (0)