mirror of
https://github.com/foss42/apidash.git
synced 2025-06-04 01:13:30 +08:00
Dynamic default uri scheme
This commit is contained in:
@ -67,7 +67,10 @@ void main() async {
|
|||||||
}
|
}
|
||||||
""";
|
""";
|
||||||
|
|
||||||
String? getCode(RequestModel requestModel) {
|
String? getCode(
|
||||||
|
RequestModel requestModel,
|
||||||
|
String defaultUriScheme,
|
||||||
|
) {
|
||||||
try {
|
try {
|
||||||
String result = "";
|
String result = "";
|
||||||
bool hasHeaders = false;
|
bool hasHeaders = false;
|
||||||
@ -75,7 +78,7 @@ void main() async {
|
|||||||
|
|
||||||
String url = requestModel.url;
|
String url = requestModel.url;
|
||||||
if (!url.contains("://") && url.isNotEmpty) {
|
if (!url.contains("://") && url.isNotEmpty) {
|
||||||
url = "$kDefaultUriScheme://$url";
|
url = "$defaultUriScheme://$url";
|
||||||
}
|
}
|
||||||
var templateUrl = jj.Template(kTemplateUrl);
|
var templateUrl = jj.Template(kTemplateUrl);
|
||||||
result += templateUrl.render({"url": url});
|
result += templateUrl.render({"url": url});
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
import 'package:apidash/providers/providers.dart';
|
||||||
import 'package:apidash/models/models.dart';
|
import 'package:apidash/models/models.dart';
|
||||||
import 'package:apidash/services/services.dart'
|
import 'package:apidash/services/services.dart'
|
||||||
show hiveHandler, HiveHandler, request;
|
show hiveHandler, HiveHandler, request;
|
||||||
import 'package:apidash/utils/utils.dart' show uuid;
|
import 'package:apidash/utils/utils.dart' show uuid;
|
||||||
import 'package:apidash/consts.dart';
|
import 'package:apidash/consts.dart';
|
||||||
import 'ui_providers.dart';
|
|
||||||
|
|
||||||
final activeRequestModelProvider = StateProvider<RequestModel?>((ref) {
|
final activeRequestModelProvider = StateProvider<RequestModel?>((ref) {
|
||||||
final activeId = ref.watch(activeIdStateProvider);
|
final activeId = ref.watch(activeIdStateProvider);
|
||||||
@ -125,9 +125,11 @@ class CollectionStateNotifier extends StateNotifier<List<RequestModel>?> {
|
|||||||
Future<void> sendRequest(String id) async {
|
Future<void> sendRequest(String id) async {
|
||||||
ref.read(sentRequestIdStateProvider.notifier).update((state) => id);
|
ref.read(sentRequestIdStateProvider.notifier).update((state) => id);
|
||||||
ref.read(codePaneVisibleStateProvider.notifier).update((state) => false);
|
ref.read(codePaneVisibleStateProvider.notifier).update((state) => false);
|
||||||
|
final defaultUriScheme =
|
||||||
|
ref.read(settingsProvider.select((value) => value.defaultUriScheme));
|
||||||
final idx = idxOfId(id);
|
final idx = idxOfId(id);
|
||||||
RequestModel requestModel = getRequestModel(id);
|
RequestModel requestModel = getRequestModel(id);
|
||||||
var responseRec = await request(requestModel);
|
var responseRec = await request(requestModel, defaultUriScheme);
|
||||||
late final RequestModel newRequestModel;
|
late final RequestModel newRequestModel;
|
||||||
if (responseRec.$0 == null) {
|
if (responseRec.$0 == null) {
|
||||||
newRequestModel = requestModel.copyWith(
|
newRequestModel = requestModel.copyWith(
|
||||||
|
@ -23,7 +23,9 @@ class _CodePaneState extends ConsumerState<CodePane> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final activeRequestModel = ref.watch(activeRequestModelProvider);
|
final activeRequestModel = ref.watch(activeRequestModelProvider);
|
||||||
final code = dartHttpCodeGen.getCode(activeRequestModel!);
|
final defaultUriScheme =
|
||||||
|
ref.watch(settingsProvider.select((value) => value.defaultUriScheme));
|
||||||
|
final code = dartHttpCodeGen.getCode(activeRequestModel!, defaultUriScheme);
|
||||||
if (code == null) {
|
if (code == null) {
|
||||||
return const ErrorMessage(
|
return const ErrorMessage(
|
||||||
message: "An error was encountered while generating code. $kRaiseIssue",
|
message: "An error was encountered while generating code. $kRaiseIssue",
|
||||||
|
@ -6,9 +6,13 @@ import 'package:apidash/utils/utils.dart';
|
|||||||
import 'package:apidash/models/models.dart';
|
import 'package:apidash/models/models.dart';
|
||||||
import 'package:apidash/consts.dart';
|
import 'package:apidash/consts.dart';
|
||||||
|
|
||||||
Future<(http.Response?, Duration?, String?)> request(RequestModel requestModel) async {
|
Future<(http.Response?, Duration?, String?)> request(
|
||||||
|
RequestModel requestModel,
|
||||||
|
String defaultUriScheme,
|
||||||
|
) async {
|
||||||
(Uri?, String?) uriRec = getValidRequestUri(requestModel.url,
|
(Uri?, String?) uriRec = getValidRequestUri(requestModel.url,
|
||||||
requestModel.requestParams);
|
requestModel.requestParams,
|
||||||
|
defaultUriScheme);
|
||||||
if(uriRec.$0 != null){
|
if(uriRec.$0 != null){
|
||||||
Uri requestUrl = uriRec.$0!;
|
Uri requestUrl = uriRec.$0!;
|
||||||
Map<String, String> headers = rowsToMap(requestModel.requestHeaders) ?? {};
|
Map<String, String> headers = rowsToMap(requestModel.requestHeaders) ?? {};
|
||||||
|
@ -53,7 +53,11 @@ MediaType? getMediaTypeFromHeaders(Map? headers) {
|
|||||||
return (null, false);
|
return (null, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
(Uri?, String?) getValidRequestUri(String? url, List<KVRow>? requestParams) {
|
(Uri?, String?) getValidRequestUri(
|
||||||
|
String? url,
|
||||||
|
List<KVRow>? requestParams,
|
||||||
|
String defaultUriScheme
|
||||||
|
) {
|
||||||
url = url?.trim();
|
url = url?.trim();
|
||||||
if(url == null || url == ""){
|
if(url == null || url == ""){
|
||||||
return (null, "URL is missing!");
|
return (null, "URL is missing!");
|
||||||
@ -70,7 +74,7 @@ MediaType? getMediaTypeFromHeaders(Map? headers) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
url = "$kDefaultUriScheme://$url";
|
url = "$defaultUriScheme://$url";
|
||||||
}
|
}
|
||||||
|
|
||||||
uri = Uri.parse(url);
|
uri = Uri.parse(url);
|
||||||
|
Reference in New Issue
Block a user