refact: codegen to override content-type header

This commit is contained in:
APPALA REDDI
2024-01-02 09:23:04 +05:30
parent 5eb91fbaf7
commit c765cb378b
3 changed files with 11 additions and 3 deletions

View File

@ -55,8 +55,11 @@ class DartHttpCodeGen {
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);
composeHeaders.putIfAbsent(HttpHeaders.contentTypeHeader, final hasContentTypeHeader = composeHeaders.keys.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
if (!hasContentTypeHeader) {
composeHeaders.putIfAbsent(HttpHeaders.contentTypeHeader,
() => kContentTypeMap[contentType] ?? ''); () => kContentTypeMap[contentType] ?? '');
}
} }
Expression? queryParamExp; Expression? queryParamExp;

View File

@ -102,7 +102,9 @@ print(data.decode("utf-8"))
var headers = requestModel.headersMap; var headers = requestModel.headersMap;
if (headers.isNotEmpty || hasBody) { if (headers.isNotEmpty || hasBody) {
hasHeaders = true; hasHeaders = true;
if (hasBody) { bool hasContentTypeHeader = headers.keys.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
if (hasBody && !hasContentTypeHeader) {
headers[HttpHeaders.contentTypeHeader] = headers[HttpHeaders.contentTypeHeader] =
kContentTypeMap[requestModel.requestBodyContentType] ?? ""; kContentTypeMap[requestModel.requestBodyContentType] ?? "";
} }

View File

@ -1,4 +1,5 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
import 'package:apidash/utils/utils.dart' show getValidRequestUri; import 'package:apidash/utils/utils.dart' show getValidRequestUri;
import 'package:apidash/models/models.dart' show RequestModel; import 'package:apidash/models/models.dart' show RequestModel;
@ -129,7 +130,9 @@ Map<String, dynamic> requestModelToHARJsonRequest(
if (headersList != null || hasBody) { if (headersList != null || hasBody) {
var headers = requestModel.headersMap; var headers = requestModel.headersMap;
if (headers.isNotEmpty || hasBody) { if (headers.isNotEmpty || hasBody) {
if (hasBody) { bool hasContentTypeHeader = headers.keys.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] ?? ""