diff --git a/packages/apidash_core/lib/models/http_response_model.dart b/packages/apidash_core/lib/models/http_response_model.dart index bdbe7c3e..9a3ff7a2 100644 --- a/packages/apidash_core/lib/models/http_response_model.dart +++ b/packages/apidash_core/lib/models/http_response_model.dart @@ -5,6 +5,7 @@ import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:collection/collection.dart' show mergeMaps; import 'package:http/http.dart'; import 'package:http_parser/http_parser.dart'; +import '../extensions/extensions.dart'; import '../utils/utils.dart'; import '../consts.dart'; @@ -61,7 +62,7 @@ class HttpResponseModel with _$HttpResponseModel { factory HttpResponseModel.fromJson(Map json) => _$HttpResponseModelFromJson(json); - String? get contentType => getContentTypeFromHeaders(headers); + String? get contentType => headers?.getValueContentType(); MediaType? get mediaType => getMediaTypeFromHeaders(headers); HttpResponseModel fromResponse({ diff --git a/packages/apidash_core/lib/utils/http_response_utils.dart b/packages/apidash_core/lib/utils/http_response_utils.dart index 58704475..c5ebfda1 100644 --- a/packages/apidash_core/lib/utils/http_response_utils.dart +++ b/packages/apidash_core/lib/utils/http_response_utils.dart @@ -1,33 +1,10 @@ import 'dart:convert'; -import 'dart:io'; import 'dart:typed_data'; import 'package:http/http.dart' as http; import 'package:http_parser/http_parser.dart'; import 'package:xml/xml.dart'; import '../consts.dart'; -String? getContentTypeFromHeaders(Map? headers) { - return headers?[HttpHeaders.contentTypeHeader]; -} - -MediaType? getMediaTypeFromHeaders(Map? headers) { - var contentType = getContentTypeFromHeaders(headers); - MediaType? mediaType = getMediaTypeFromContentType(contentType); - return mediaType; -} - -MediaType? getMediaTypeFromContentType(String? contentType) { - if (contentType != null) { - try { - MediaType mediaType = MediaType.parse(contentType); - return mediaType; - } catch (e) { - return null; - } - } - return null; -} - String? formatBody(String? body, MediaType? mediaType) { if (mediaType != null && body != null) { var subtype = mediaType.subtype; diff --git a/packages/apidash_core/test/extensions/map_extensions_test.dart b/packages/apidash_core/test/extensions/map_extensions_test.dart index e076a647..a3ad994a 100644 --- a/packages/apidash_core/test/extensions/map_extensions_test.dart +++ b/packages/apidash_core/test/extensions/map_extensions_test.dart @@ -109,4 +109,21 @@ void main() { expect(mapEx.getValueContentType(), "y"); }); }); + + group("Testing ?.getValueContentType() function", () { + test('Testing ?.getValueContentType() for header1', () { + Map header1 = { + "content-type": "application/json", + }; + String contentType1Expected = "application/json"; + expect(header1.getValueContentType(), contentType1Expected); + }); + test('Testing ?.getValueContentType() when header keys are in header case', + () { + Map header2 = { + "Content-Type": "application/json", + }; + expect(header2.getValueContentType(), "application/json"); + }); + }); } diff --git a/packages/apidash_core/test/utils/https_response_utils.dart b/packages/apidash_core/test/utils/https_response_utils.dart index 07ff4336..409e2f5a 100644 --- a/packages/apidash_core/test/utils/https_response_utils.dart +++ b/packages/apidash_core/test/utils/https_response_utils.dart @@ -1,30 +1,8 @@ -import 'package:apidash_core/utils/http_response_utils.dart'; -import 'package:apidash_core/utils/string_utils.dart'; +import 'package:apidash_core/utils/utils.dart'; import 'package:http_parser/http_parser.dart'; import 'package:test/test.dart'; void main() { - group("Testing getContentTypeFromHeaders function", () { - test('Testing getContentTypeFromHeaders for header1', () { - Map header1 = { - "content-type": "application/json", - }; - String contentType1Expected = "application/json"; - expect(getContentTypeFromHeaders(header1), contentType1Expected); - }); - test('Testing getContentTypeFromHeaders for null headers', () { - expect(getContentTypeFromHeaders(null), null); - }); - test( - 'Testing getContentTypeFromHeaders when header keys are in header case', - () { - Map header2 = { - "Content-Type": "application/json", - }; - expect(getContentTypeFromHeaders(header2), null); - }); - }); - group('Testing getMediaTypeFromContentType function', () { test('Testing getMediaTypeFromContentType for json type', () { String contentType1 = "application/json";