@@ -2,57 +2,32 @@ import 'dart:io';
22
33import 'package:http/http.dart' as http;
44import 'package:weather_mvvm/src/data/api_state.dart' ;
5+ import 'package:weather_mvvm/src/data/http_managment.dart' ;
56import 'package:weather_mvvm/src/models/weather_models.dart' ;
67import 'package:weather_mvvm/src/utils/constans.dart' ;
78
89class WeatherServices {
910 Future getCurrentWeather (String lat, String long) async {
10- try {
11- var response = await http.get (Uri .parse (
12- 'https://api.openweathermap.org/data/2.5/weather?lat=$lat &lon=$long &appid=$apiKey ' ));
13- if (response.statusCode == 200 ) {
14- return Success (
15- code: 200 , successResponse: weatherModelFromJson (response.body));
16- }
17- if (response.statusCode == 404 ) {
18- return Failure (code: 404 , failureResponse: 'City Not Fount' );
19- }
20- return Failure (code: 100 , failureResponse: 'Invalid Response' );
21- } on HttpException {
22- return Failure (code: 101 , failureResponse: 'No Internet' );
23- } on FormatException {
24- return Failure (code: 102 , failureResponse: 'Invalid Format' );
25- } on SocketException {
26- return Failure (code: 102 , failureResponse: 'No Internet Connection' );
27- } catch (e) {
28- return Failure (code: 103 , failureResponse: 'Unknown Error' );
11+ var response = await HttpManager .requestManager (
12+ 'https://api.openweathermap.org/data/2.5/weather?lat=$lat &lon=$long &appid=$apiKey ' );
13+ if (response is http.Response ) {
14+ return Success (
15+ code: 200 , successResponse: weatherModelFromJson (response.body));
16+ }
17+ if (response is Failure ) {
18+ return response;
2919 }
3020 }
3121
3222 Future getWeather ({required String cityName}) async {
33- try {
34- var response = await http.get (
35- Uri .parse (
36- 'https://api.openweathermap.org/data/2.5/weather?q=$cityName &appid=$apiKey ' ),
37- );
38- if (response.statusCode == 200 ) {
39- return Success (
40- code: 200 ,
41- successResponse: weatherModelFromJson (response.body),
42- );
43- }
44- if (response.statusCode == 404 ) {
45- return Failure (code: 404 , failureResponse: 'City Not Fount' );
46- }
47- return Failure (code: 100 , failureResponse: 'Invalid Response' );
48- } on HttpException {
49- return Failure (code: 101 , failureResponse: 'No Internet' );
50- } on FormatException {
51- return Failure (code: 102 , failureResponse: 'Invalid Format' );
52- } on SocketException {
53- return Failure (code: 102 , failureResponse: 'No Internet Connection' );
54- } catch (e) {
55- return Failure (code: 103 , failureResponse: 'Unknown Error' );
23+ var response = await HttpManager .requestManager (
24+ 'https://api.openweathermap.org/data/2.5/weather?q=$cityName &appid=$apiKey ' );
25+ if (response is http.Response ) {
26+ return Success (
27+ code: 200 , successResponse: weatherModelFromJson (response.body));
28+ }
29+ if (response is Failure ) {
30+ return response;
5631 }
5732 }
5833}
0 commit comments