Add SupportedUriSchemes support

This commit is contained in:
Ashita Prasad
2024-12-15 07:37:18 +05:30
parent 676468dc7c
commit 2bb54ec4d6
7 changed files with 25 additions and 14 deletions

View File

@ -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:

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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 = [

View File

@ -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,

View File

@ -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);