Skip to content

Commit 6fa2300

Browse files
author
Keval
committed
Checking status code for every api response
1 parent 7b5f7c7 commit 6fa2300

File tree

4 files changed

+75
-11
lines changed

4 files changed

+75
-11
lines changed

open-weather-wrapper/src/main/java/com/openweatherweapper/OpenWeatherApi.java

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
public class OpenWeatherApi {
2929

3030
private static final int NO_LIMIT = -1;
31+
private static final int SUCCESS_CODE = 200;
3132

3233
@SuppressWarnings("NullableProblems")
3334
@NonNull
@@ -122,7 +123,9 @@ public void onError(Throwable e) {
122123

123124
@Override
124125
public void onNext(CurrentWeather currentWeather) {
125-
listener.onResponse(currentWeather);
126+
if (currentWeather.getStatusCode() == SUCCESS_CODE)
127+
listener.onResponse(currentWeather);
128+
else listener.onError(currentWeather.statusMessage());
126129
}
127130
});
128131

@@ -160,7 +163,9 @@ public void onError(Throwable e) {
160163

161164
@Override
162165
public void onNext(CurrentWeather currentWeather) {
163-
listener.onResponse(currentWeather);
166+
if (currentWeather.getStatusCode() == SUCCESS_CODE)
167+
listener.onResponse(currentWeather);
168+
else listener.onError(currentWeather.statusMessage());
164169
}
165170
});
166171

@@ -196,7 +201,9 @@ public void onError(Throwable e) {
196201

197202
@Override
198203
public void onNext(CurrentWeather currentWeather) {
199-
listener.onResponse(currentWeather);
204+
if (currentWeather.getStatusCode() == SUCCESS_CODE)
205+
listener.onResponse(currentWeather);
206+
else listener.onError(currentWeather.statusMessage());
200207
}
201208
});
202209

@@ -236,7 +243,9 @@ public void onError(Throwable e) {
236243

237244
@Override
238245
public void onNext(CurrentWeather currentWeather) {
239-
listener.onResponse(currentWeather);
246+
if (currentWeather.getStatusCode() == SUCCESS_CODE)
247+
listener.onResponse(currentWeather);
248+
else listener.onError(currentWeather.statusMessage());
240249
}
241250
});
242251
}
@@ -272,7 +281,9 @@ public void onError(Throwable e) {
272281

273282
@Override
274283
public void onNext(MultipleCitiesWeathers citiesWeathers) {
275-
listener.onResponse(citiesWeathers);
284+
if (citiesWeathers.getStatusCode() == SUCCESS_CODE)
285+
listener.onResponse(citiesWeathers);
286+
else listener.onError(citiesWeathers.statusMessage());
276287
}
277288
});
278289
}
@@ -327,7 +338,9 @@ public void onError(Throwable e) {
327338

328339
@Override
329340
public void onNext(WeatherForecast weatherForecasts) {
330-
listener.onResponse(weatherForecasts);
341+
if (weatherForecasts.getStatusCode() == SUCCESS_CODE)
342+
listener.onResponse(weatherForecasts);
343+
else listener.onError(weatherForecasts.statusMessage());
331344
}
332345
});
333346
}
@@ -413,7 +426,9 @@ public void onError(Throwable e) {
413426

414427
@Override
415428
public void onNext(WeatherForecast weatherForecasts) {
416-
listener.onResponse(weatherForecasts);
429+
if (weatherForecasts.getStatusCode() == SUCCESS_CODE)
430+
listener.onResponse(weatherForecasts);
431+
else listener.onError(weatherForecasts.statusMessage());
417432
}
418433
});
419434
}
@@ -470,7 +485,9 @@ public void onError(Throwable e) {
470485

471486
@Override
472487
public void onNext(WeatherForecast weatherForecasts) {
473-
listener.onResponse(weatherForecasts);
488+
if (weatherForecasts.getStatusCode() == SUCCESS_CODE)
489+
listener.onResponse(weatherForecasts);
490+
else listener.onError(weatherForecasts.statusMessage());
474491
}
475492
});
476493
}
@@ -524,7 +541,9 @@ public void onError(Throwable e) {
524541

525542
@Override
526543
public void onNext(WeatherForecast weatherForecasts) {
527-
listener.onResponse(weatherForecasts);
544+
if (weatherForecasts.getStatusCode() == SUCCESS_CODE)
545+
listener.onResponse(weatherForecasts);
546+
else listener.onError(weatherForecasts.statusMessage());
528547
}
529548
});
530549
}
@@ -607,7 +626,9 @@ public void onError(Throwable e) {
607626

608627
@Override
609628
public void onNext(WeatherForecast weatherForecasts) {
610-
listener.onResponse(weatherForecasts);
629+
if (weatherForecasts.getStatusCode() == SUCCESS_CODE)
630+
listener.onResponse(weatherForecasts);
631+
else listener.onError(weatherForecasts.statusMessage());
611632
}
612633
});
613634
}
@@ -664,7 +685,9 @@ public void onError(Throwable e) {
664685

665686
@Override
666687
public void onNext(WeatherForecast weatherForecasts) {
667-
listener.onResponse(weatherForecasts);
688+
if (weatherForecasts.getStatusCode() == SUCCESS_CODE)
689+
listener.onResponse(weatherForecasts);
690+
else listener.onError(weatherForecasts.statusMessage());
668691
}
669692
});
670693
}

open-weather-wrapper/src/main/java/com/openweatherweapper/models/CurrentWeather.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,12 @@ public class CurrentWeather {
5353
@SerializedName("snow")
5454
@Expose
5555
private Snow snowInfo;
56+
@Expose
57+
private int code;
58+
@SerializedName("message")
59+
@Expose
60+
private String message;
61+
5662

5763
/**
5864
* @return Coordinates
@@ -145,4 +151,12 @@ public Rain getRainInfo() {
145151
public Snow getSnowInfo() {
146152
return snowInfo;
147153
}
154+
155+
public int getStatusCode() {
156+
return code;
157+
}
158+
159+
public String statusMessage() {
160+
return message;
161+
}
148162
}

open-weather-wrapper/src/main/java/com/openweatherweapper/models/MultipleCitiesWeathers.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ public class MultipleCitiesWeathers {
2020
@SerializedName("list")
2121
@Expose
2222
private List<CurrentWeather> weatherInfos = new ArrayList<>();
23+
@Expose
24+
private int code;
25+
@SerializedName("message")
26+
@Expose
27+
private String message;
2328

2429
/**
2530
* @return list of {@link CurrentWeather} information for each city
@@ -31,4 +36,12 @@ public List<CurrentWeather> getWeatherInfos() {
3136
public int getNoOfResult() {
3237
return noOfResult;
3338
}
39+
40+
public int getStatusCode() {
41+
return code;
42+
}
43+
44+
public String statusMessage() {
45+
return message;
46+
}
3447
}

open-weather-wrapper/src/main/java/com/openweatherweapper/models/WeatherForecast.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ public class WeatherForecast {
2424
@SerializedName("list")
2525
@Expose
2626
private List<Forecast> forecast = null;
27+
@SerializedName("cod")
28+
@Expose
29+
private int code;
30+
@SerializedName("message")
31+
@Expose
32+
private String message;
2733

2834
/**
2935
* @return City information
@@ -44,4 +50,12 @@ public Long getNoOfForecastResult() {
4450
public List<Forecast> getForecast() {
4551
return forecast;
4652
}
53+
54+
public int getStatusCode() {
55+
return code;
56+
}
57+
58+
public String statusMessage() {
59+
return message;
60+
}
4761
}

0 commit comments

Comments
 (0)