mirror of
https://github.com/foss42/apidash.git
synced 2025-05-21 00:09:55 +08:00
Add SupportedUriSchemes support
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/models/models.dart';
|
||||
import 'package:apidash/utils/utils.dart' show getNewUuid;
|
||||
import 'package:apidash_core/apidash_core.dart';
|
||||
import 'c/curl.dart';
|
||||
import 'csharp/http_client.dart';
|
||||
import 'csharp/rest_sharp.dart';
|
||||
@ -35,7 +36,7 @@ class Codegen {
|
||||
String? getCode(
|
||||
CodegenLanguage codegenLanguage,
|
||||
RequestModel requestModel,
|
||||
String defaultUriScheme, {
|
||||
SupportedUriSchemes defaultUriScheme, {
|
||||
String? boundary,
|
||||
}) {
|
||||
var httpRequestModel = requestModel.httpRequestModel;
|
||||
@ -48,7 +49,7 @@ class Codegen {
|
||||
url = kDefaultUri;
|
||||
}
|
||||
if (!url.contains("://") && url.isNotEmpty) {
|
||||
url = "$defaultUriScheme://$url";
|
||||
url = "${defaultUriScheme.name}://$url";
|
||||
}
|
||||
var rM = httpRequestModel.copyWith(url: url);
|
||||
|
||||
@ -56,7 +57,7 @@ class Codegen {
|
||||
case CodegenLanguage.curl:
|
||||
return cURLCodeGen().getCode(rM);
|
||||
case CodegenLanguage.har:
|
||||
return HARCodeGen().getCode(rM, defaultUriScheme, boundary: boundary);
|
||||
return HARCodeGen().getCode(rM, boundary: boundary);
|
||||
case CodegenLanguage.dartHttp:
|
||||
return DartHttpCodeGen().getCode(rM);
|
||||
case CodegenLanguage.dartDio:
|
||||
|
@ -22,7 +22,7 @@ class SettingsModel {
|
||||
final bool alwaysShowCollectionPaneScrollbar;
|
||||
final Size? size;
|
||||
final Offset? offset;
|
||||
final String defaultUriScheme;
|
||||
final SupportedUriSchemes defaultUriScheme;
|
||||
final CodegenLanguage defaultCodeGenLang;
|
||||
final bool saveResponses;
|
||||
final bool promptBeforeClosing;
|
||||
@ -35,7 +35,7 @@ class SettingsModel {
|
||||
bool? alwaysShowCollectionPaneScrollbar,
|
||||
Size? size,
|
||||
Offset? offset,
|
||||
String? defaultUriScheme,
|
||||
SupportedUriSchemes? defaultUriScheme,
|
||||
CodegenLanguage? defaultCodeGenLang,
|
||||
bool? saveResponses,
|
||||
bool? promptBeforeClosing,
|
||||
@ -94,7 +94,16 @@ class SettingsModel {
|
||||
if (dx != null && dy != null) {
|
||||
offset = Offset(dx, dy);
|
||||
}
|
||||
final defaultUriScheme = data["defaultUriScheme"] as String?;
|
||||
final defaultUriSchemeStr = data["defaultUriScheme"] as String?;
|
||||
SupportedUriSchemes? defaultUriScheme;
|
||||
if (defaultUriSchemeStr != null) {
|
||||
try {
|
||||
defaultUriScheme =
|
||||
SupportedUriSchemes.values.byName(defaultUriSchemeStr);
|
||||
} catch (e) {
|
||||
// pass
|
||||
}
|
||||
}
|
||||
final defaultCodeGenLangStr = data["defaultCodeGenLang"] as String?;
|
||||
CodegenLanguage? defaultCodeGenLang;
|
||||
if (defaultCodeGenLangStr != null) {
|
||||
@ -146,7 +155,7 @@ class SettingsModel {
|
||||
"height": size?.height,
|
||||
"dx": offset?.dx,
|
||||
"dy": offset?.dy,
|
||||
"defaultUriScheme": defaultUriScheme,
|
||||
"defaultUriScheme": defaultUriScheme.name,
|
||||
"defaultCodeGenLang": defaultCodeGenLang.name,
|
||||
"saveResponses": saveResponses,
|
||||
"promptBeforeClosing": promptBeforeClosing,
|
||||
|
@ -1,3 +1,4 @@
|
||||
import 'package:apidash_core/apidash_core.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import '../models/models.dart';
|
||||
@ -24,7 +25,7 @@ class ThemeStateNotifier extends StateNotifier<SettingsModel> {
|
||||
bool? alwaysShowCollectionPaneScrollbar,
|
||||
Size? size,
|
||||
Offset? offset,
|
||||
String? defaultUriScheme,
|
||||
SupportedUriSchemes? defaultUriScheme,
|
||||
CodegenLanguage? defaultCodeGenLang,
|
||||
bool? saveResponses,
|
||||
bool? promptBeforeClosing,
|
||||
|
@ -78,7 +78,7 @@ Map<String, dynamic> entryToHAR(RequestModel requestModel) {
|
||||
|
||||
Map<String, dynamic> requestModelToHARJsonRequest(
|
||||
HttpRequestModel? requestModel, {
|
||||
defaultUriScheme = kDefaultUriScheme,
|
||||
SupportedUriSchemes defaultUriScheme = kDefaultUriScheme,
|
||||
bool exportMode = false,
|
||||
bool useEnabled = false,
|
||||
String? boundary,
|
||||
|
@ -13,7 +13,7 @@ enum SupportedUriSchemes { https, http }
|
||||
|
||||
final kSupportedUriSchemes =
|
||||
SupportedUriSchemes.values.map((i) => i.name).toList();
|
||||
const kDefaultUriScheme = "https";
|
||||
const kDefaultUriScheme = SupportedUriSchemes.https;
|
||||
final kLocalhostRegex = RegExp(r'^localhost(:\d+)?(/.*)?$');
|
||||
|
||||
const kMethodsWithBody = [
|
||||
|
@ -11,7 +11,7 @@ typedef HttpResponse = http.Response;
|
||||
|
||||
Future<(HttpResponse?, Duration?, String?)> request(
|
||||
HttpRequestModel requestModel, {
|
||||
String defaultUriScheme = kDefaultUriScheme,
|
||||
SupportedUriSchemes defaultUriScheme = kDefaultUriScheme,
|
||||
}) async {
|
||||
(Uri?, String?) uriRec = getValidRequestUri(
|
||||
requestModel.url,
|
||||
|
@ -5,7 +5,7 @@ import 'http_request_utils.dart';
|
||||
|
||||
(String?, bool) getUriScheme(Uri uri) {
|
||||
if (uri.hasScheme) {
|
||||
if (kSupportedUriSchemes.contains(uri.scheme)) {
|
||||
if (kSupportedUriSchemes.contains(uri.scheme.toLowerCase())) {
|
||||
return (uri.scheme, true);
|
||||
}
|
||||
return (uri.scheme, false);
|
||||
@ -24,7 +24,7 @@ String stripUrlParams(String url) {
|
||||
|
||||
(Uri?, String?) getValidRequestUri(
|
||||
String? url, List<NameValueModel>? requestParams,
|
||||
{String defaultUriScheme = kDefaultUriScheme}) {
|
||||
{SupportedUriSchemes defaultUriScheme = kDefaultUriScheme}) {
|
||||
url = url?.trim();
|
||||
if (url == null || url == "") {
|
||||
return (null, "URL is missing!");
|
||||
@ -44,7 +44,7 @@ String stripUrlParams(String url) {
|
||||
return (null, "Unsupported URL Scheme (${urlScheme.$1})");
|
||||
}
|
||||
} else {
|
||||
url = "$defaultUriScheme://$url";
|
||||
url = "${defaultUriScheme.name}://$url";
|
||||
}
|
||||
|
||||
uri = Uri.parse(url);
|
||||
|
Reference in New Issue
Block a user