mirror of
https://github.com/foss42/apidash.git
synced 2025-06-30 21:06:43 +08:00
Update http client usage in request http service
This commit is contained in:
@ -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) {
|
||||
|
@ -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();
|
||||
|
Reference in New Issue
Block a user