Merge branch 'main' into form_data_imp

This commit is contained in:
Ashita Prasad
2024-01-07 15:50:20 +05:30
committed by GitHub
5 changed files with 13 additions and 19 deletions

View File

@ -20,9 +20,10 @@ class DartHttpCodeGen {
url: url, url: url,
method: requestModel.method, method: requestModel.method,
queryParams: requestModel.enabledParamsMap, queryParams: requestModel.enabledParamsMap,
headers: requestModel.enabledHeadersMap, headers: {...requestModel.enabledHeadersMap},
body: requestModel.requestBody,
contentType: requestModel.requestBodyContentType, contentType: requestModel.requestBodyContentType,
hasContentTypeHeader: requestModel.hasContentTypeHeader,
body: requestModel.requestBody,
formData: requestModel.formDataMapList, formData: requestModel.formDataMapList,
); );
return next; return next;
@ -36,8 +37,9 @@ class DartHttpCodeGen {
required HTTPVerb method, required HTTPVerb method,
required Map<String, String> queryParams, required Map<String, String> queryParams,
required Map<String, String> headers, required Map<String, String> headers,
required String? body,
required ContentType contentType, required ContentType contentType,
required String? body,
required bool hasContentTypeHeader,
required List<Map<String, dynamic>> formData, required List<Map<String, dynamic>> formData,
}) { }) {
final uri = Uri.parse(url); final uri = Uri.parse(url);
@ -50,16 +52,12 @@ class DartHttpCodeGen {
final uriExp = final uriExp =
declareVar('uri').assign(refer('Uri.parse').call([literalString(url)])); declareVar('uri').assign(refer('Uri.parse').call([literalString(url)]));
final composeHeaders = headers;
Expression? dataExp; Expression? dataExp;
if (kMethodsWithBody.contains(method) && (body?.isNotEmpty ?? false)) { if (kMethodsWithBody.contains(method) && (body?.isNotEmpty ?? false)) {
final strContent = CodeExpression(Code('r\'\'\'$body\'\'\'')); final strContent = CodeExpression(Code('r\'\'\'$body\'\'\''));
dataExp = declareVar('body', type: refer('String')).assign(strContent); dataExp = declareVar('body', type: refer('String')).assign(strContent);
final hasContentTypeHeader = composeHeaders.keys
.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
if (!hasContentTypeHeader) { if (!hasContentTypeHeader) {
composeHeaders.putIfAbsent(HttpHeaders.contentTypeHeader, headers.putIfAbsent(HttpHeaders.contentTypeHeader,
() => kContentTypeMap[contentType] ?? ''); () => kContentTypeMap[contentType] ?? '');
} }
} }

View File

@ -152,10 +152,7 @@ body = b'\r\n'.join(dataList)
if (headers.isNotEmpty || hasBody) { if (headers.isNotEmpty || hasBody) {
hasHeaders = true; hasHeaders = true;
bool hasContentTypeHeader = headers.keys if (hasBody && !requestModel.hasContentTypeHeader) {
.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
if (hasBody && !hasContentTypeHeader) {
headers[HttpHeaders.contentTypeHeader] = headers[HttpHeaders.contentTypeHeader] =
kContentTypeMap[requestModel.requestBodyContentType] ?? ""; kContentTypeMap[requestModel.requestBodyContentType] ?? "";
} }

View File

@ -1,3 +1,4 @@
import 'dart:io';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import '../utils/utils.dart' import '../utils/utils.dart'
show show
@ -63,6 +64,9 @@ class RequestModel {
rowsToFormDataMapList(requestFormDataList) ?? []; rowsToFormDataMapList(requestFormDataList) ?? [];
bool get isFormDataRequest => requestBodyContentType == ContentType.formdata; bool get isFormDataRequest => requestBodyContentType == ContentType.formdata;
bool get hasContentTypeHeader => enabledHeadersMap.keys
.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
RequestModel duplicate({ RequestModel duplicate({
required String id, required String id,
}) { }) {

View File

@ -29,9 +29,7 @@ Future<(http.Response?, Duration?, String?)> request(
if (contentLength > 0) { if (contentLength > 0) {
body = requestBody; body = requestBody;
headers[HttpHeaders.contentLengthHeader] = contentLength.toString(); headers[HttpHeaders.contentLengthHeader] = contentLength.toString();
final hasContentTypeHeader = headers.keys if (!requestModel.hasContentTypeHeader) {
.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
if (!hasContentTypeHeader) {
headers[HttpHeaders.contentTypeHeader] = headers[HttpHeaders.contentTypeHeader] =
kContentTypeMap[requestModel.requestBodyContentType] ?? ""; kContentTypeMap[requestModel.requestBodyContentType] ?? "";
} }

View File

@ -136,10 +136,7 @@ Map<String, dynamic> requestModelToHARJsonRequest(
var headers = var headers =
useEnabled ? requestModel.enabledHeadersMap : requestModel.headersMap; useEnabled ? requestModel.enabledHeadersMap : requestModel.headersMap;
if (headers.isNotEmpty || hasBody) { if (headers.isNotEmpty || hasBody) {
bool hasContentTypeHeader = headers.keys if (hasBody && !requestModel.hasContentTypeHeader) {
.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
if (hasBody && !hasContentTypeHeader) {
var m = { var m = {
"name": "Content-Type", "name": "Content-Type",
"value": kContentTypeMap[requestModel.requestBodyContentType] ?? "" "value": kContentTypeMap[requestModel.requestBodyContentType] ?? ""