Dynamic default uri scheme

This commit is contained in:
Ankit Mahato
2023-05-04 12:25:41 +05:30
parent be0ed29a6d
commit a86175d2ad
5 changed files with 24 additions and 9 deletions

View File

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

View File

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

View File

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

View File

@ -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) ?? {};

View File

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