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