mirror of
https://github.com/foss42/apidash.git
synced 2025-07-15 00:52:22 +08:00
Migrate functions to utilities
This commit is contained in:
@ -2,8 +2,8 @@ import 'dart:io';
|
||||
import 'dart:convert';
|
||||
import 'package:jinja/jinja.dart' as jj;
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/utils/utils.dart' show padMultilineString;
|
||||
import 'package:apidash/models/models.dart' show RequestModel, rowsToMap;
|
||||
import 'package:apidash/utils/utils.dart' show padMultilineString, rowsToMap;
|
||||
import 'package:apidash/models/models.dart' show RequestModel;
|
||||
|
||||
class DartHttpCodeGen {
|
||||
String kTemplateUrl = """import 'package:http/http.dart' as http;
|
||||
|
@ -19,20 +19,3 @@ class KVRow {
|
||||
return {k: v}.toString();
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, String>? rowsToMap(List<KVRow>? kvRows, {bool isHeader = false}) {
|
||||
if (kvRows == null) {
|
||||
return null;
|
||||
}
|
||||
Map<String, String> finalMap = {};
|
||||
for (var row in kvRows) {
|
||||
if (row.k.trim() != "") {
|
||||
String key = row.k;
|
||||
if (isHeader) {
|
||||
key = key.toLowerCase();
|
||||
}
|
||||
finalMap[key] = row.v;
|
||||
}
|
||||
}
|
||||
return finalMap;
|
||||
}
|
||||
|
@ -2,55 +2,9 @@ import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:collection/collection.dart' show mergeMaps;
|
||||
import '../models/models.dart';
|
||||
import '../../consts.dart';
|
||||
|
||||
(String?, bool) getUriScheme(Uri uri) {
|
||||
if(uri.hasScheme){
|
||||
if(kSupportedUriSchemes.contains(uri.scheme)){
|
||||
return (uri.scheme, true);
|
||||
}
|
||||
return (uri.scheme, false);
|
||||
}
|
||||
return (null, false);
|
||||
}
|
||||
|
||||
(Uri?, String?) getValidRequestUri(String? url, List<KVRow>? requestParams) {
|
||||
url = url?.trim();
|
||||
if(url == null || url == ""){
|
||||
return (null, "URL is missing!");
|
||||
}
|
||||
Uri? uri = Uri.tryParse(url);
|
||||
if(uri == null){
|
||||
return (null, "Check URL (malformed)");
|
||||
}
|
||||
(String?, bool) urlScheme = getUriScheme(uri);
|
||||
|
||||
if(urlScheme.$0 != null){
|
||||
if (!urlScheme.$1){
|
||||
return (null, "Unsupported URL Scheme (${urlScheme.$0})");
|
||||
}
|
||||
}
|
||||
else {
|
||||
url = kDefaultUriScheme + url;
|
||||
}
|
||||
|
||||
uri = Uri.parse(url);
|
||||
if (uri.hasFragment){
|
||||
uri = uri.removeFragment();
|
||||
}
|
||||
|
||||
Map<String, String>? queryParams = rowsToMap(requestParams);
|
||||
if(queryParams != null){
|
||||
if(uri.hasQuery){
|
||||
Map<String, String> urlQueryParams = uri.queryParameters;
|
||||
queryParams = mergeMaps(urlQueryParams, queryParams);
|
||||
}
|
||||
uri = uri.replace(queryParameters: queryParams);
|
||||
}
|
||||
return (uri, null);
|
||||
}
|
||||
import 'package:apidash/utils/utils.dart';
|
||||
import 'package:apidash/models/models.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
|
||||
Future<(http.Response?, Duration?, String?)> request(RequestModel requestModel) async {
|
||||
(Uri?, String?) uriRec = getValidRequestUri(requestModel.url,
|
||||
|
@ -1,4 +1,5 @@
|
||||
import '../consts.dart';
|
||||
import 'package:apidash/models/models.dart' show KVRow;
|
||||
|
||||
String humanizeDuration(Duration? duration) {
|
||||
if (duration == null) {
|
||||
@ -46,3 +47,20 @@ String padMultilineString(String text, int padding,
|
||||
}
|
||||
return lines.join("\n");
|
||||
}
|
||||
|
||||
Map<String, String>? rowsToMap(List<KVRow>? kvRows, {bool isHeader = false}) {
|
||||
if (kvRows == null) {
|
||||
return null;
|
||||
}
|
||||
Map<String, String> finalMap = {};
|
||||
for (var row in kvRows) {
|
||||
if (row.k.trim() != "") {
|
||||
String key = row.k;
|
||||
if (isHeader) {
|
||||
key = key.toLowerCase();
|
||||
}
|
||||
finalMap[key] = row.v;
|
||||
}
|
||||
}
|
||||
return finalMap;
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
import 'dart:convert';
|
||||
import 'package:collection/collection.dart' show mergeMaps;
|
||||
import 'package:http_parser/http_parser.dart';
|
||||
import 'package:xml/xml.dart';
|
||||
import 'package:apidash/models/models.dart' show KVRow;
|
||||
import 'convert_utils.dart' show rowsToMap;
|
||||
import '../consts.dart';
|
||||
|
||||
String getRequestTitleFromUrl(String? url) {
|
||||
@ -17,6 +20,52 @@ String getRequestTitleFromUrl(String? url) {
|
||||
return url;
|
||||
}
|
||||
|
||||
(String?, bool) getUriScheme(Uri uri) {
|
||||
if(uri.hasScheme){
|
||||
if(kSupportedUriSchemes.contains(uri.scheme)){
|
||||
return (uri.scheme, true);
|
||||
}
|
||||
return (uri.scheme, false);
|
||||
}
|
||||
return (null, false);
|
||||
}
|
||||
|
||||
(Uri?, String?) getValidRequestUri(String? url, List<KVRow>? requestParams) {
|
||||
url = url?.trim();
|
||||
if(url == null || url == ""){
|
||||
return (null, "URL is missing!");
|
||||
}
|
||||
Uri? uri = Uri.tryParse(url);
|
||||
if(uri == null){
|
||||
return (null, "Check URL (malformed)");
|
||||
}
|
||||
(String?, bool) urlScheme = getUriScheme(uri);
|
||||
|
||||
if(urlScheme.$0 != null){
|
||||
if (!urlScheme.$1){
|
||||
return (null, "Unsupported URL Scheme (${urlScheme.$0})");
|
||||
}
|
||||
}
|
||||
else {
|
||||
url = kDefaultUriScheme + url;
|
||||
}
|
||||
|
||||
uri = Uri.parse(url);
|
||||
if (uri.hasFragment){
|
||||
uri = uri.removeFragment();
|
||||
}
|
||||
|
||||
Map<String, String>? queryParams = rowsToMap(requestParams);
|
||||
if(queryParams != null){
|
||||
if(uri.hasQuery){
|
||||
Map<String, String> urlQueryParams = uri.queryParameters;
|
||||
queryParams = mergeMaps(urlQueryParams, queryParams);
|
||||
}
|
||||
uri = uri.replace(queryParameters: queryParams);
|
||||
}
|
||||
return (uri, null);
|
||||
}
|
||||
|
||||
(List<ResponseBodyView>, String?) getResponseBodyViewOptions(MediaType mediaType){
|
||||
var type = mediaType.type;
|
||||
var subtype = mediaType.subtype;
|
||||
|
Reference in New Issue
Block a user