diff --git a/lib/codegen/others/curl.dart b/lib/codegen/others/curl.dart index 2ba59765..2f177609 100644 --- a/lib/codegen/others/curl.dart +++ b/lib/codegen/others/curl.dart @@ -58,7 +58,7 @@ class cURLCodeGen { } else if (requestModel.hasFormData) { for (var formData in requestModel.formDataList) { var templateFormData = jj.Template(kTemplateFormData); - if (formData.name.isNotEmpty && formData.value.isNotEmpty) { + if (formData.name.isNotEmpty) { result += templateFormData.render({ "name": formData.name, "value": diff --git a/lib/models/request_model.dart b/lib/models/request_model.dart index 6bdff603..a1a4ed75 100644 --- a/lib/models/request_model.dart +++ b/lib/models/request_model.dart @@ -80,10 +80,10 @@ class RequestModel { bool get hasFormData => kMethodsWithBody.contains(method) && hasFormDataContentType && - (requestFormDataList ?? []).isNotEmpty; + formDataMapList.isNotEmpty; List get formDataList => requestFormDataList ?? []; - List> get formDataMapList => + List> get formDataMapList => rowsToFormDataMapList(requestFormDataList) ?? []; bool get hasFileInFormData => formDataList .map((e) => e.type == FormDataType.file) @@ -137,6 +137,7 @@ class RequestModel { var params = requestParams ?? this.requestParams; var enabledHeaders = isHeaderEnabledList ?? this.isHeaderEnabledList; var enabledParams = isParamEnabledList ?? this.isParamEnabledList; + var formDataList = requestFormDataList ?? this.requestFormDataList; return RequestModel( id: id ?? this.id, method: method ?? this.method, @@ -151,7 +152,7 @@ class RequestModel { requestBodyContentType: requestBodyContentType ?? this.requestBodyContentType, requestBody: requestBody ?? this.requestBody, - requestFormDataList: requestFormDataList ?? this.requestFormDataList, + requestFormDataList: formDataList != null ? [...formDataList] : null, responseStatus: responseStatus ?? this.responseStatus, message: message ?? this.message, responseModel: responseModel ?? this.responseModel, diff --git a/lib/utils/convert_utils.dart b/lib/utils/convert_utils.dart index bc704af9..e855568b 100644 --- a/lib/utils/convert_utils.dart +++ b/lib/utils/convert_utils.dart @@ -1,5 +1,6 @@ import 'dart:typed_data'; import 'dart:convert'; +import 'package:collection/collection.dart'; import '../models/models.dart'; import '../consts.dart'; import 'package:http/http.dart' as http; @@ -90,18 +91,22 @@ List? mapToRows(Map? kvMap) { return finalRows; } -List>? rowsToFormDataMapList( +List>? rowsToFormDataMapList( List? kvRows, ) { if (kvRows == null) { return null; } - List> finalMap = kvRows - .map((FormDataModel formData) => { - "name": formData.name, - "value": formData.value, - "type": formData.type.name, - }) + List> finalMap = kvRows + .map((FormDataModel formData) => + (formData.name.trim().isEmpty && formData.value.trim().isEmpty) + ? null + : { + "name": formData.name, + "value": formData.value, + "type": formData.type.name, + }) + .whereNotNull() .toList(); return finalMap; } diff --git a/lib/utils/file_utils.dart b/lib/utils/file_utils.dart index 68554153..58d69513 100644 --- a/lib/utils/file_utils.dart +++ b/lib/utils/file_utils.dart @@ -50,7 +50,7 @@ String getShortPath(String path) { String getFilenameFromPath(String path) { var f = p.split(path); - return f.last; + return f.lastOrNull ?? ""; } String getTempFileName() {