From d46dd0071feffcd491e95f5da189bdb0db6f0a26 Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Mon, 8 Jan 2024 00:32:49 +0530 Subject: [PATCH] Update ContentType & ResponseBodyView enums --- lib/codegen/dart/http.dart | 6 ++--- lib/codegen/kotlin/okhttp.dart | 3 +-- lib/codegen/python/http_client.dart | 2 +- lib/codegen/python/requests.dart | 2 +- lib/consts.dart | 36 ++++++++++++++--------------- lib/services/http_service.dart | 2 +- lib/utils/har_utils.dart | 4 ++-- lib/widgets/response_widgets.dart | 9 +++----- 8 files changed, 29 insertions(+), 35 deletions(-) diff --git a/lib/codegen/dart/http.dart b/lib/codegen/dart/http.dart index 8c1f3c8f..3e423743 100644 --- a/lib/codegen/dart/http.dart +++ b/lib/codegen/dart/http.dart @@ -22,7 +22,7 @@ class DartHttpCodeGen { queryParams: requestModel.enabledParamsMap, headers: {...requestModel.enabledHeadersMap}, contentType: requestModel.requestBodyContentType, - hasContentTypeHeader: requestModel.hasContentTypeHeader, + hasContentTypeHeader: requestModel.hasContentTypeHeader, body: requestModel.requestBody, formData: requestModel.formDataMapList, ); @@ -57,8 +57,8 @@ class DartHttpCodeGen { final strContent = CodeExpression(Code('r\'\'\'$body\'\'\'')); dataExp = declareVar('body', type: refer('String')).assign(strContent); if (!hasContentTypeHeader) { - headers.putIfAbsent(HttpHeaders.contentTypeHeader, - () => kContentTypeMap[contentType] ?? ''); + headers.putIfAbsent( + HttpHeaders.contentTypeHeader, () => contentType.header); } } diff --git a/lib/codegen/kotlin/okhttp.dart b/lib/codegen/kotlin/okhttp.dart index becfdbe4..07e5a92b 100644 --- a/lib/codegen/kotlin/okhttp.dart +++ b/lib/codegen/kotlin/okhttp.dart @@ -118,8 +118,7 @@ import okhttp3.MediaType.Companion.toMediaType"""; var contentLength = utf8.encode(requestBody).length; if (contentLength > 0) { hasBody = true; - String contentType = - kContentTypeMap[requestModel.requestBodyContentType] ?? ""; + String contentType = requestModel.requestBodyContentType.header; var templateBody = jj.Template(kTemplateRequestBody); result += templateBody .render({"contentType": contentType, "body": requestBody}); diff --git a/lib/codegen/python/http_client.dart b/lib/codegen/python/http_client.dart index 2d002ca7..4406effb 100644 --- a/lib/codegen/python/http_client.dart +++ b/lib/codegen/python/http_client.dart @@ -154,7 +154,7 @@ body = b'\r\n'.join(dataList) hasHeaders = true; if (hasBody && !requestModel.hasContentTypeHeader) { headers[HttpHeaders.contentTypeHeader] = - kContentTypeMap[requestModel.requestBodyContentType] ?? ""; + requestModel.requestBodyContentType.header; } var headersString = kEncoder.convert(headers); headersString = padMultilineString(headersString, kHeadersPadding); diff --git a/lib/codegen/python/requests.dart b/lib/codegen/python/requests.dart index 4d9523e4..3a5beeb6 100644 --- a/lib/codegen/python/requests.dart +++ b/lib/codegen/python/requests.dart @@ -162,7 +162,7 @@ print('Response Body:', response.text) hasHeaders = true; if (hasBody) { headers[HttpHeaders.contentTypeHeader] = - kContentTypeMap[requestModel.requestBodyContentType] ?? ""; + requestModel.requestBodyContentType.header; } var headersString = kEncoder.convert(headers); headersString = padMultilineString(headersString, kHeadersPadding); diff --git a/lib/consts.dart b/lib/consts.dart index cc1ae394..e598db62 100644 --- a/lib/consts.dart +++ b/lib/consts.dart @@ -242,8 +242,6 @@ enum RequestItemMenuOption { edit, delete, duplicate } enum HTTPVerb { get, head, post, put, patch, delete } -enum ContentType { json, text, formdata } - enum FormDataType { text, file } const kSupportedUriSchemes = ["https", "http"]; @@ -312,25 +310,25 @@ const kTypeVideo = 'video'; const kSubTypeDefaultViewOptions = 'all'; -const kContentTypeMap = { - ContentType.json: "$kTypeApplication/$kSubTypeJson", - ContentType.text: "$kTypeText/$kSubTypePlain", - ContentType.formdata: "multipart/form-data", -}; +enum ContentType { + json("$kTypeApplication/$kSubTypeJson"), + text("$kTypeText/$kSubTypePlain"), + formdata("multipart/form-data"); -enum ResponseBodyView { preview, code, raw, none } + const ContentType(this.header); + final String header; +} -const kKeyIcon = "icon"; -const kKeyName = "name"; -const Map kResponseBodyViewIcons = { - ResponseBodyView.none: {kKeyName: "Preview", kKeyIcon: Icons.warning}, - ResponseBodyView.preview: { - kKeyName: "Preview", - kKeyIcon: Icons.visibility_rounded - }, - ResponseBodyView.code: {kKeyName: "Preview", kKeyIcon: Icons.code_rounded}, - ResponseBodyView.raw: {kKeyName: "Raw", kKeyIcon: Icons.text_snippet_rounded} -}; +enum ResponseBodyView { + preview("Preview", Icons.visibility_rounded), + code("Preview", Icons.code_rounded), + raw("Raw", Icons.text_snippet_rounded), + none("Preview", Icons.warning); + + const ResponseBodyView(this.label, this.icon); + final String label; + final IconData icon; +} const kNoBodyViewOptions = [ResponseBodyView.none]; const kNoRawBodyViewOptions = [ResponseBodyView.none, ResponseBodyView.raw]; diff --git a/lib/services/http_service.dart b/lib/services/http_service.dart index 46a66a91..c5a7b4ce 100644 --- a/lib/services/http_service.dart +++ b/lib/services/http_service.dart @@ -31,7 +31,7 @@ Future<(http.Response?, Duration?, String?)> request( headers[HttpHeaders.contentLengthHeader] = contentLength.toString(); if (!requestModel.hasContentTypeHeader) { headers[HttpHeaders.contentTypeHeader] = - kContentTypeMap[requestModel.requestBodyContentType] ?? ""; + requestModel.requestBodyContentType.header; } } } diff --git a/lib/utils/har_utils.dart b/lib/utils/har_utils.dart index f7491bc1..4ca2dd05 100644 --- a/lib/utils/har_utils.dart +++ b/lib/utils/har_utils.dart @@ -121,7 +121,7 @@ Map requestModelToHARJsonRequest( hasBody = true; json["postData"] = {}; json["postData"]["mimeType"] = - kContentTypeMap[requestModel.requestBodyContentType] ?? ""; + requestModel.requestBodyContentType.header; json["postData"]["text"] = requestBody; if (exportMode) { json["postData"]["comment"] = ""; @@ -139,7 +139,7 @@ Map requestModelToHARJsonRequest( if (hasBody && !requestModel.hasContentTypeHeader) { var m = { "name": "Content-Type", - "value": kContentTypeMap[requestModel.requestBodyContentType] ?? "" + "value": requestModel.requestBodyContentType.header }; if (exportMode) { m["comment"] = ""; diff --git a/lib/widgets/response_widgets.dart b/lib/widgets/response_widgets.dart index 960fc9dd..680041c0 100644 --- a/lib/widgets/response_widgets.dart +++ b/lib/widgets/response_widgets.dart @@ -397,16 +397,13 @@ class _BodySuccessState extends State { (widget.options == kRawBodyViewOptions) ? const SizedBox() : SegmentedButton( - selectedIcon: Icon( - kResponseBodyViewIcons[currentSeg]![kKeyIcon]), + selectedIcon: Icon(currentSeg.icon), segments: widget.options .map>( (e) => ButtonSegment( value: e, - label: Text( - kResponseBodyViewIcons[e]![kKeyName]), - icon: Icon( - kResponseBodyViewIcons[e]![kKeyIcon]), + label: Text(e.label), + icon: Icon(e.icon), ), ) .toList(),