Update http client usage in request http service

This commit is contained in:
Sixtus Agbo
2024-03-26 04:06:42 +01:00
parent f3a7865459
commit 15c573d181
2 changed files with 26 additions and 16 deletions

View File

@ -1,11 +1,12 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'settings_providers.dart';
import 'ui_providers.dart';
import 'package:http/http.dart' as http;
import '../consts.dart';
import '../models/models.dart';
import '../services/services.dart' show hiveHandler, HiveHandler, request;
import '../utils/utils.dart' show getNewUuid, collectionToHAR;
import '../consts.dart';
import 'package:http/http.dart' as http;
import 'settings_providers.dart';
import 'ui_providers.dart';
final selectedIdStateProvider = StateProvider<String?>((ref) => null);
@ -24,13 +25,16 @@ final requestSequenceProvider = StateProvider<List<String>>((ref) {
return ids ?? [];
});
final client = http.Client();
final StateNotifierProvider<CollectionStateNotifier, Map<String, RequestModel>?>
collectionStateNotifierProvider =
StateNotifierProvider((ref) => CollectionStateNotifier(ref, hiveHandler));
collectionStateNotifierProvider = StateNotifierProvider(
(ref) => CollectionStateNotifier(ref, hiveHandler, client));
class CollectionStateNotifier
extends StateNotifier<Map<String, RequestModel>?> {
CollectionStateNotifier(this.ref, this.hiveHandler) : super(null) {
CollectionStateNotifier(this.ref, this.hiveHandler, this.httpClient)
: super(null) {
var status = loadData();
Future.microtask(() {
if (status) {
@ -46,6 +50,7 @@ class CollectionStateNotifier
final Ref ref;
final HiveHandler hiveHandler;
final baseResponseModel = const ResponseModel();
final http.Client httpClient;
bool hasId(String id) => state?.keys.contains(id) ?? false;
@ -187,6 +192,7 @@ class CollectionStateNotifier
(http.Response?, Duration?, String?)? responseRec = await request(
requestModel,
defaultUriScheme: defaultUriScheme,
client: httpClient,
);
late final RequestModel newRequestModel;
if (responseRec.$1 == null) {

View File

@ -1,14 +1,16 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;
import 'package:apidash/utils/utils.dart';
import 'package:apidash/models/models.dart';
import 'package:apidash/consts.dart';
import 'package:apidash/models/models.dart';
import 'package:apidash/utils/utils.dart';
import 'package:http/http.dart' as http;
Future<(http.Response?, Duration?, String?)> request(
RequestModel requestModel, {
String defaultUriScheme = kDefaultUriScheme,
required http.Client client,
}) async {
(Uri?, String?) uriRec = getValidRequestUri(
requestModel.url,
@ -66,23 +68,25 @@ Future<(http.Response?, Duration?, String?)> request(
}
switch (requestModel.method) {
case HTTPVerb.get:
response = await http.get(requestUrl, headers: headers);
response = await client.get(requestUrl, headers: headers);
break;
case HTTPVerb.head:
response = await http.head(requestUrl, headers: headers);
response = await client.head(requestUrl, headers: headers);
break;
case HTTPVerb.post:
response = await http.post(requestUrl, headers: headers, body: body);
response =
await client.post(requestUrl, headers: headers, body: body);
break;
case HTTPVerb.put:
response = await http.put(requestUrl, headers: headers, body: body);
response = await client.put(requestUrl, headers: headers, body: body);
break;
case HTTPVerb.patch:
response = await http.patch(requestUrl, headers: headers, body: body);
response =
await client.patch(requestUrl, headers: headers, body: body);
break;
case HTTPVerb.delete:
response =
await http.delete(requestUrl, headers: headers, body: body);
await client.delete(requestUrl, headers: headers, body: body);
break;
}
stopwatch.stop();