Skip to content

Commit

Permalink
add http service
Browse files Browse the repository at this point in the history
  • Loading branch information
LiquidatorCoder2 committed Nov 14, 2021
1 parent 52e6fe7 commit 2f7044b
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
65 changes: 65 additions & 0 deletions lib/services/http_service.dart
@@ -0,0 +1,65 @@
import 'dart:io';

import 'package:dio/dio.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:odin/services/logger.dart';

class HTTPService {
final _dio = Dio(BaseOptions(
baseUrl: 'https://newsapi.org/v2',
connectTimeout: 5000,
receiveTimeout: 3000,
));

Future<Response?> get({
required uri,
Map<String, String>? headers,
Map<String, String>? body,
}) async {
final String time = DateTime.now().toString();
logger.d("GET:: $time : ${uri.toString()}");
try {
final Stopwatch stopwatch = Stopwatch()..start();
final query = {'apiKey': dotenv.env['NEWS_API_KEY']};
query.addAll(body ?? {});
final Response response = await _dio.get(uri,
queryParameters: query, options: Options(headers: headers));
stopwatch.stop();
logger.d("Last request took : ${stopwatch.elapsedMilliseconds} ms.");
logger.d("Request : ${response.realUri}");
if (response.statusCode != 200) {
throw HttpException(response.statusCode.toString());
}
return response;
} catch (e, st) {
logger.e("Get Request Failed.", e, st);
return null;
}
}

Future<Response?> post({
required uri,
Map<String, String>? headers,
Map<String, String>? body,
}) async {
final String time = DateTime.now().toString();
logger.d("POST:: $time : ${uri.toString()}");
try {
final Stopwatch stopwatch = Stopwatch()..start();
final query = {'apiKey': dotenv.env['NEWS_API_KEY']};
query.addAll(body ?? {});
final Response response = await _dio.post(uri,
queryParameters: query, options: Options(headers: headers));
stopwatch.stop();
logger.d("Last request took : ${stopwatch.elapsedMilliseconds} ms.");
logger.d("Request : ${response.realUri}");
if (response.statusCode != 200) {
throw HttpException(response.statusCode.toString());
}
return response;
} catch (e, st) {
logger.e("Post Request Failed.", e, st);
return null;
}
}
}
7 changes: 7 additions & 0 deletions pubspec.lock
Expand Up @@ -92,6 +92,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2"
dio:
dependency: "direct main"
description:
name: dio
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.3"
fake_async:
dependency: transitive
description:
Expand Down
1 change: 1 addition & 0 deletions pubspec.yaml
Expand Up @@ -46,6 +46,7 @@ dependencies:
logger: ^1.1.0
path_provider: ^2.0.6
url_launcher: ^6.0.12
dio: ^4.0.3

dev_dependencies:
flutter_test:
Expand Down

0 comments on commit 2f7044b

Please sign in to comment.