From 06f8cd7f0267d1364d2fcbf78eef6bb5a23653cd Mon Sep 17 00:00:00 2001 From: DenserMeerkat <95911940+DenserMeerkat@users.noreply.github.com> Date: Fri, 22 Dec 2023 20:25:26 +0530 Subject: [PATCH] fix: review changes --- lib/codegen/dart/http.dart | 4 +- lib/codegen/kotlin/okhttp.dart | 7 +- lib/codegen/python/http_client.dart | 7 +- lib/codegen/python/requests.dart | 7 +- lib/models/request_model.dart | 69 +++++++++++-------- lib/providers/collection_providers.dart | 8 +-- .../request_pane/request_headers.dart | 35 ++++------ .../request_pane/request_params.dart | 31 ++++----- lib/services/http_service.dart | 5 +- lib/utils/convert_utils.dart | 6 +- lib/utils/har_utils.dart | 7 +- lib/utils/http_utils.dart | 7 +- test/models/request_model_test.dart | 4 +- test/utils/http_utils_test.dart | 17 +++-- 14 files changed, 104 insertions(+), 110 deletions(-) diff --git a/lib/codegen/dart/http.dart b/lib/codegen/dart/http.dart index 2c0e016c..9e3d6976 100644 --- a/lib/codegen/dart/http.dart +++ b/lib/codegen/dart/http.dart @@ -111,9 +111,9 @@ void main() async { } } - var headersList = requestModel.requestHeaders; + var headersList = requestModel.enabledRequestHeaders; if (headersList != null || hasBody) { - var headers = requestModel.headersMap; + var headers = requestModel.enabledHeadersMap; if (headers.isNotEmpty || hasBody) { hasHeaders = true; if (hasBody) { diff --git a/lib/codegen/kotlin/okhttp.dart b/lib/codegen/kotlin/okhttp.dart index e28e7e7f..362e31a1 100644 --- a/lib/codegen/kotlin/okhttp.dart +++ b/lib/codegen/kotlin/okhttp.dart @@ -79,8 +79,7 @@ import okhttp3.MediaType.Companion.toMediaType"""; var rec = getValidRequestUri( url, - requestModel.requestParams, - requestModel.enabledParams, + requestModel.enabledRequestParams, ); Uri? uri = rec.$1; @@ -124,9 +123,9 @@ import okhttp3.MediaType.Companion.toMediaType"""; result = stringStart + result; result += kStringRequestStart; - var headersList = requestModel.requestHeaders; + var headersList = requestModel.enabledRequestHeaders; if (headersList != null) { - var headers = requestModel.headersMap; + var headers = requestModel.enabledHeadersMap; if (headers.isNotEmpty) { hasHeaders = true; result += getHeaders(headers); diff --git a/lib/codegen/python/http_client.dart b/lib/codegen/python/http_client.dart index 169de25e..9ba66919 100644 --- a/lib/codegen/python/http_client.dart +++ b/lib/codegen/python/http_client.dart @@ -73,8 +73,7 @@ print(data.decode("utf-8")) result += kTemplateStart; var rec = getValidRequestUri( url, - requestModel.requestParams, - requestModel.enabledParams, + requestModel.enabledRequestParams, ); Uri? uri = rec.$1; @@ -101,9 +100,9 @@ print(data.decode("utf-8")) } } - var headersList = requestModel.requestHeaders; + var headersList = requestModel.enabledRequestHeaders; if (headersList != null || hasBody) { - var headers = requestModel.headersMap; + var headers = requestModel.enabledHeadersMap; if (headers.isNotEmpty || hasBody) { hasHeaders = true; if (hasBody) { diff --git a/lib/codegen/python/requests.dart b/lib/codegen/python/requests.dart index e2e5f050..bb3c53c8 100644 --- a/lib/codegen/python/requests.dart +++ b/lib/codegen/python/requests.dart @@ -77,8 +77,7 @@ print('Response Body:', response.text) var rec = getValidRequestUri( url, - requestModel.requestParams, - requestModel.enabledParams, + requestModel.enabledRequestParams, ); Uri? uri = rec.$1; if (uri != null) { @@ -113,9 +112,9 @@ print('Response Body:', response.text) } } - var headersList = requestModel.requestHeaders; + var headersList = requestModel.enabledRequestHeaders; if (headersList != null || hasBody) { - var headers = requestModel.headersMap; + var headers = requestModel.enabledHeadersMap; if (headers.isNotEmpty || hasBody) { hasHeaders = true; if (hasBody) { diff --git a/lib/models/request_model.dart b/lib/models/request_model.dart index 78947792..df49ba1e 100644 --- a/lib/models/request_model.dart +++ b/lib/models/request_model.dart @@ -1,7 +1,7 @@ -import 'package:apidash/utils/convert_utils.dart'; import 'package:flutter/foundation.dart'; import 'package:apidash/consts.dart'; -import 'package:apidash/utils/utils.dart' show mapToRows, rowsToMap; +import 'package:apidash/utils/utils.dart' + show mapToRows, rowsToMap, getEnabledRows; import 'name_value_model.dart'; import 'response_model.dart'; @@ -16,8 +16,8 @@ class RequestModel { this.requestTabIndex = 0, this.requestHeaders, this.requestParams, - this.enabledHeaders, - this.enabledParams, + this.isHeaderEnabledList, + this.isParamEnabledList, this.requestBodyContentType = ContentType.json, this.requestBody, this.responseStatus, @@ -33,18 +33,25 @@ class RequestModel { final int requestTabIndex; final List? requestHeaders; final List? requestParams; - final List? enabledHeaders; - final List? enabledParams; + final List? isHeaderEnabledList; + final List? isParamEnabledList; final ContentType requestBodyContentType; final String? requestBody; final int? responseStatus; final String? message; final ResponseModel? responseModel; - Map get headersMap => - rowsToMap(getEnabledRows(requestHeaders, enabledHeaders)) ?? {}; - Map get paramsMap => - rowsToMap(getEnabledRows(requestParams, enabledParams)) ?? {}; + List? get enabledRequestHeaders => + getEnabledRows(requestHeaders, isHeaderEnabledList); + List? get enabledRequestParams => + getEnabledRows(requestParams, isParamEnabledList); + + Map get enabledHeadersMap => + rowsToMap(enabledRequestHeaders) ?? {}; + Map get enabledParamsMap => + rowsToMap(enabledRequestParams) ?? {}; + Map get headersMap => rowsToMap(requestHeaders) ?? {}; + Map get paramsMap => rowsToMap(requestParams) ?? {}; RequestModel duplicate({ required String id, @@ -57,8 +64,10 @@ class RequestModel { description: description, requestHeaders: requestHeaders != null ? [...requestHeaders!] : null, requestParams: requestParams != null ? [...requestParams!] : null, - enabledHeaders: enabledHeaders != null ? [...enabledHeaders!] : null, - enabledParams: enabledParams != null ? [...enabledParams!] : null, + isHeaderEnabledList: + isHeaderEnabledList != null ? [...isHeaderEnabledList!] : null, + isParamEnabledList: + isParamEnabledList != null ? [...isParamEnabledList!] : null, requestBodyContentType: requestBodyContentType, requestBody: requestBody, ); @@ -73,8 +82,8 @@ class RequestModel { int? requestTabIndex, List? requestHeaders, List? requestParams, - List? enabledHeaders, - List? enabledParams, + List? isHeaderEnabledList, + List? isParamEnabledList, ContentType? requestBodyContentType, String? requestBody, int? responseStatus, @@ -83,8 +92,8 @@ class RequestModel { }) { var headers = requestHeaders ?? this.requestHeaders; var params = requestParams ?? this.requestParams; - var eHeaders = enabledHeaders ?? this.enabledHeaders; - var eParams = enabledParams ?? this.enabledParams; + var enabledHeaders = isHeaderEnabledList ?? this.isHeaderEnabledList; + var enabledParams = isParamEnabledList ?? this.isParamEnabledList; return RequestModel( id: id ?? this.id, method: method ?? this.method, @@ -94,8 +103,8 @@ class RequestModel { requestTabIndex: requestTabIndex ?? this.requestTabIndex, requestHeaders: headers != null ? [...headers] : null, requestParams: params != null ? [...params] : null, - enabledHeaders: eHeaders != null ? [...eHeaders] : null, - enabledParams: eParams != null ? [...eParams] : null, + isHeaderEnabledList: enabledHeaders != null ? [...enabledHeaders] : null, + isParamEnabledList: enabledParams != null ? [...enabledParams] : null, requestBodyContentType: requestBodyContentType ?? this.requestBodyContentType, requestBody: requestBody ?? this.requestBody, @@ -121,8 +130,8 @@ class RequestModel { final description = data["description"] as String?; final requestHeaders = data["requestHeaders"]; final requestParams = data["requestParams"]; - final enabledHeaders = data["enabledHeaders"] as List?; - final enabledParams = data["enabledParams"] as List?; + final isHeaderEnabledList = data["isHeaderEnabledList"] as List?; + final isParamEnabledList = data["isParamEnabledList"] as List?; try { requestBodyContentType = ContentType.values.byName(data["requestBodyContentType"] as String); @@ -153,8 +162,8 @@ class RequestModel { requestParams: requestParams != null ? mapToRows(Map.from(requestParams)) : null, - enabledHeaders: enabledHeaders, - enabledParams: enabledParams, + isHeaderEnabledList: isHeaderEnabledList, + isParamEnabledList: isParamEnabledList, requestBodyContentType: requestBodyContentType, requestBody: requestBody, responseStatus: responseStatus, @@ -172,8 +181,8 @@ class RequestModel { "description": description, "requestHeaders": rowsToMap(requestHeaders), "requestParams": rowsToMap(requestParams), - "enabledHeaders": enabledHeaders, - "enabledParams": enabledParams, + "isHeaderEnabledList": isHeaderEnabledList, + "isParamEnabledList": isParamEnabledList, "requestBodyContentType": requestBodyContentType.name, "requestBody": requestBody, "responseStatus": includeResponse ? responseStatus : null, @@ -192,9 +201,9 @@ class RequestModel { "Request Description: $description", "Request Tab Index: ${requestTabIndex.toString()}", "Request Headers: ${requestHeaders.toString()}", - "Enabled Headers: ${enabledHeaders.toString()}", + "Enabled Headers: ${isHeaderEnabledList.toString()}", "Request Params: ${requestParams.toString()}", - "Enabled Params: ${enabledParams.toString()}", + "Enabled Params: ${isParamEnabledList.toString()}", "Request Body Content Type: ${requestBodyContentType.toString()}", "Request Body: ${requestBody.toString()}", "Response Status: $responseStatus", @@ -215,8 +224,8 @@ class RequestModel { other.requestTabIndex == requestTabIndex && listEquals(other.requestHeaders, requestHeaders) && listEquals(other.requestParams, requestParams) && - listEquals(other.enabledHeaders, enabledHeaders) && - listEquals(other.enabledParams, enabledParams) && + listEquals(other.isHeaderEnabledList, isHeaderEnabledList) && + listEquals(other.isParamEnabledList, isParamEnabledList) && other.requestBodyContentType == requestBodyContentType && other.requestBody == requestBody && other.responseStatus == responseStatus && @@ -236,8 +245,8 @@ class RequestModel { requestTabIndex, requestHeaders, requestParams, - enabledHeaders, - enabledParams, + isHeaderEnabledList, + isParamEnabledList, requestBodyContentType, requestBody, responseStatus, diff --git a/lib/providers/collection_providers.dart b/lib/providers/collection_providers.dart index 8bf8c97f..8e5b305a 100644 --- a/lib/providers/collection_providers.dart +++ b/lib/providers/collection_providers.dart @@ -123,8 +123,8 @@ class CollectionStateNotifier int? requestTabIndex, List? requestHeaders, List? requestParams, - List? enabledHeaders, - List? enabledParams, + List? isHeaderEnabledList, + List? isParamEnabledList, ContentType? requestBodyContentType, String? requestBody, int? responseStatus, @@ -139,8 +139,8 @@ class CollectionStateNotifier requestTabIndex: requestTabIndex, requestHeaders: requestHeaders, requestParams: requestParams, - enabledHeaders: enabledHeaders, - enabledParams: enabledParams, + isHeaderEnabledList: isHeaderEnabledList, + isParamEnabledList: isParamEnabledList, requestBodyContentType: requestBodyContentType, requestBody: requestBody, responseStatus: responseStatus, diff --git a/lib/screens/home_page/editor_pane/details_card/request_pane/request_headers.dart b/lib/screens/home_page/editor_pane/details_card/request_pane/request_headers.dart index 191655fc..4517d1d1 100644 --- a/lib/screens/home_page/editor_pane/details_card/request_pane/request_headers.dart +++ b/lib/screens/home_page/editor_pane/details_card/request_pane/request_headers.dart @@ -16,7 +16,7 @@ class EditRequestHeaders extends ConsumerStatefulWidget { class EditRequestHeadersState extends ConsumerState { late List rows; - late List enabledRows; + late List isRowEnabledList; final random = Random.secure(); late int seed; @@ -30,7 +30,7 @@ class EditRequestHeadersState extends ConsumerState { ref.read(collectionStateNotifierProvider.notifier).update( activeId, requestHeaders: rows, - enabledHeaders: enabledRows, + isHeaderEnabledList: isRowEnabledList, ); } @@ -45,8 +45,9 @@ class EditRequestHeadersState extends ConsumerState { kNameValueEmptyModel, ] : rH; - enabledRows = ref.read(activeRequestModelProvider)?.enabledHeaders ?? - List.filled(rows.length, true, growable: true); + isRowEnabledList = + ref.read(activeRequestModelProvider)?.isHeaderEnabledList ?? + List.filled(rows.length, true, growable: true); DaviModel model = DaviModel( rows: rows, @@ -58,10 +59,10 @@ class EditRequestHeadersState extends ConsumerState { int idx = row.index; return CheckBox( keyId: "$activeId-$idx-headers-c-$seed", - value: enabledRows[idx], + value: isRowEnabledList[idx], onChanged: (value) { setState(() { - enabledRows[idx] = value!; + isRowEnabledList[idx] = value!; }); _onFieldChange(activeId!); }, @@ -125,17 +126,13 @@ class EditRequestHeadersState extends ConsumerState { onTap: () { seed = random.nextInt(kRandMax); if (rows.length == 1) { - setState(() { - rows = [ - kNameValueEmptyModel, - ]; - enabledRows = [true]; - }); + rows = [ + kNameValueEmptyModel, + ]; + isRowEnabledList = [true]; } else { - setState(() { - enabledRows.removeAt(row.index); - rows.removeAt(row.index); - }); + isRowEnabledList.removeAt(row.index); + rows.removeAt(row.index); } _onFieldChange(activeId!); }, @@ -169,10 +166,8 @@ class EditRequestHeadersState extends ConsumerState { padding: const EdgeInsets.only(bottom: 30), child: ElevatedButton.icon( onPressed: () { - setState(() { - rows.add(kNameValueEmptyModel); - enabledRows.add(true); - }); + rows.add(kNameValueEmptyModel); + isRowEnabledList.add(true); _onFieldChange(activeId!); }, icon: const Icon(Icons.add), diff --git a/lib/screens/home_page/editor_pane/details_card/request_pane/request_params.dart b/lib/screens/home_page/editor_pane/details_card/request_pane/request_params.dart index 6bdf3cac..83603631 100644 --- a/lib/screens/home_page/editor_pane/details_card/request_pane/request_params.dart +++ b/lib/screens/home_page/editor_pane/details_card/request_pane/request_params.dart @@ -17,7 +17,7 @@ class EditRequestURLParams extends ConsumerStatefulWidget { class EditRequestURLParamsState extends ConsumerState { late List rows; - late List enabledRows; + late List isRowEnabledList; final random = Random.secure(); late int seed; @@ -31,7 +31,7 @@ class EditRequestURLParamsState extends ConsumerState { ref.read(collectionStateNotifierProvider.notifier).update( activeId, requestParams: rows, - enabledParams: enabledRows, + isParamEnabledList: isRowEnabledList, ); } @@ -46,8 +46,9 @@ class EditRequestURLParamsState extends ConsumerState { kNameValueEmptyModel, ] : rP; - enabledRows = ref.read(activeRequestModelProvider)?.enabledParams ?? - List.filled(rows.length, true, growable: true); + isRowEnabledList = + ref.read(activeRequestModelProvider)?.isParamEnabledList ?? + List.filled(rows.length, true, growable: true); DaviModel model = DaviModel( rows: rows, @@ -60,10 +61,10 @@ class EditRequestURLParamsState extends ConsumerState { return CheckBox( keyId: "$activeId-$idx-params-c-$seed", - value: enabledRows[idx], + value: isRowEnabledList[idx], onChanged: (value) { setState(() { - enabledRows[idx] = value!; + isRowEnabledList[idx] = value!; }); _onFieldChange(activeId!); }, @@ -127,17 +128,13 @@ class EditRequestURLParamsState extends ConsumerState { onTap: () { seed = random.nextInt(kRandMax); if (rows.length == 1) { - setState(() { - rows = [ - kNameValueEmptyModel, - ]; - enabledRows = [true]; - }); + rows = [ + kNameValueEmptyModel, + ]; + isRowEnabledList = [true]; } else { - setState(() { - enabledRows.removeAt(row.index); - rows.removeAt(row.index); - }); + isRowEnabledList.removeAt(row.index); + rows.removeAt(row.index); } _onFieldChange(activeId!); }, @@ -173,7 +170,7 @@ class EditRequestURLParamsState extends ConsumerState { onPressed: () { setState(() { rows.add(kNameValueEmptyModel); - enabledRows.add(true); + isRowEnabledList.add(true); }); _onFieldChange(activeId!); }, diff --git a/lib/services/http_service.dart b/lib/services/http_service.dart index c02af612..bac77ce6 100644 --- a/lib/services/http_service.dart +++ b/lib/services/http_service.dart @@ -12,13 +12,12 @@ Future<(http.Response?, Duration?, String?)> request( }) async { (Uri?, String?) uriRec = getValidRequestUri( requestModel.url, - requestModel.requestParams, - requestModel.enabledParams, + requestModel.enabledRequestParams, defaultUriScheme: defaultUriScheme, ); if (uriRec.$1 != null) { Uri requestUrl = uriRec.$1!; - Map headers = requestModel.headersMap; + Map headers = requestModel.enabledHeadersMap; http.Response response; String? body; try { diff --git a/lib/utils/convert_utils.dart b/lib/utils/convert_utils.dart index a7350257..94e6c878 100644 --- a/lib/utils/convert_utils.dart +++ b/lib/utils/convert_utils.dart @@ -111,11 +111,11 @@ Uint8List jsonMapToBytes(Map? map) { } List? getEnabledRows( - List? rows, List? enabledList) { - if (rows == null || enabledList == null) { + List? rows, List? isRowEnabledList) { + if (rows == null || isRowEnabledList == null) { return rows; } List finalRows = - rows.where((element) => enabledList[rows.indexOf(element)]).toList(); + rows.where((element) => isRowEnabledList[rows.indexOf(element)]).toList(); return finalRows == [] ? null : finalRows; } diff --git a/lib/utils/har_utils.dart b/lib/utils/har_utils.dart index 15efa7f4..2bf30731 100644 --- a/lib/utils/har_utils.dart +++ b/lib/utils/har_utils.dart @@ -80,8 +80,7 @@ Map requestModelToHARJsonRequest( var rec = getValidRequestUri( requestModel.url, - requestModel.requestParams, - requestModel.enabledParams, + requestModel.enabledRequestParams, defaultUriScheme: defaultUriScheme, ); @@ -126,9 +125,9 @@ Map requestModelToHARJsonRequest( } } - var headersList = requestModel.requestHeaders; + var headersList = requestModel.enabledRequestHeaders; if (headersList != null || hasBody) { - var headers = requestModel.headersMap; + var headers = requestModel.enabledHeadersMap; if (headers.isNotEmpty || hasBody) { if (hasBody) { var m = { diff --git a/lib/utils/http_utils.dart b/lib/utils/http_utils.dart index 927cdc24..63aa6181 100644 --- a/lib/utils/http_utils.dart +++ b/lib/utils/http_utils.dart @@ -4,7 +4,7 @@ import 'package:collection/collection.dart' show mergeMaps; import 'package:http_parser/http_parser.dart'; import 'package:xml/xml.dart'; import '../models/models.dart'; -import 'convert_utils.dart' show getEnabledRows, rowsToMap; +import 'convert_utils.dart' show rowsToMap; import '../consts.dart'; String getRequestTitleFromUrl(String? url) { @@ -63,7 +63,7 @@ String stripUrlParams(String url) { } (Uri?, String?) getValidRequestUri( - String? url, List? requestParams, List? enabledParams, + String? url, List? requestParams, {String defaultUriScheme = kDefaultUriScheme}) { url = url?.trim(); if (url == null || url == "") { @@ -88,8 +88,7 @@ String stripUrlParams(String url) { uri = uri.removeFragment(); } - Map? queryParams = - rowsToMap(getEnabledRows(requestParams, enabledParams)); + Map? queryParams = rowsToMap(requestParams); if (queryParams != null) { if (uri.hasQuery) { Map urlQueryParams = uri.queryParameters; diff --git a/test/models/request_model_test.dart b/test/models/request_model_test.dart index 3c73b9d4..b1b56bfd 100644 --- a/test/models/request_model_test.dart +++ b/test/models/request_model_test.dart @@ -106,9 +106,9 @@ void main() { 'content-length': '18', 'content-type': 'application/json; charset=utf-8' }, - 'enabledHeaders': null, + 'isHeaderEnabledList': null, 'requestParams': null, - 'enabledParams': null, + 'isParamEnabledList': null, "requestBodyContentType": 'json', "requestBody": '''{ "text":"WORLD" diff --git a/test/utils/http_utils_test.dart b/test/utils/http_utils_test.dart index 5b10cb63..55129bcc 100644 --- a/test/utils/http_utils_test.dart +++ b/test/utils/http_utils_test.dart @@ -182,16 +182,15 @@ void main() { host: 'api.foss42.com', path: 'country/data', queryParameters: {'code': 'US'}); - expect(getValidRequestUri(url1, [kvRow1], null), (uri1Expected, null)); + expect(getValidRequestUri(url1, [kvRow1]), (uri1Expected, null)); }); test('Testing getValidRequestUri for null url value', () { const kvRow2 = NameValueModel(name: "code", value: "US"); - expect( - getValidRequestUri(null, [kvRow2], null), (null, "URL is missing!")); + expect(getValidRequestUri(null, [kvRow2]), (null, "URL is missing!")); }); test('Testing getValidRequestUri for empty url value', () { const kvRow3 = NameValueModel(name: "", value: ""); - expect(getValidRequestUri("", [kvRow3], null), (null, "URL is missing!")); + expect(getValidRequestUri("", [kvRow3]), (null, "URL is missing!")); }); test('Testing getValidRequestUri when https is not provided in url', () { String url4 = "api.foss42.com/country/data"; @@ -201,7 +200,7 @@ void main() { host: 'api.foss42.com', path: 'country/data', queryParameters: {'code': 'US'}); - expect(getValidRequestUri(url4, [kvRow4], null), (uri4Expected, null)); + expect(getValidRequestUri(url4, [kvRow4]), (uri4Expected, null)); }); test('Testing getValidRequestUri when url has fragment', () { String url5 = "https://dart.dev/guides/libraries/library-tour#numbers"; @@ -209,11 +208,11 @@ void main() { scheme: 'https', host: 'dart.dev', path: '/guides/libraries/library-tour'); - expect(getValidRequestUri(url5, null, null), (uri5Expected, null)); + expect(getValidRequestUri(url5, null), (uri5Expected, null)); }); test('Testing getValidRequestUri when uri scheme is not supported', () { String url5 = "mailto:someone@example.com"; - expect(getValidRequestUri(url5, null, null), + expect(getValidRequestUri(url5, null), (null, "Unsupported URL Scheme (mailto)")); }); test('Testing getValidRequestUri when query params in both url and kvrow', @@ -225,7 +224,7 @@ void main() { host: 'api.foss42.com', path: 'country/data', queryParameters: {'code': 'US'}); - expect(getValidRequestUri(url6, [kvRow6], null), (uri6Expected, null)); + expect(getValidRequestUri(url6, [kvRow6]), (uri6Expected, null)); }); test('Testing getValidRequestUri when kvrow is null', () { String url7 = "api.foss42.com/country/data?code=US"; @@ -234,7 +233,7 @@ void main() { host: 'api.foss42.com', path: 'country/data', queryParameters: {'code': 'US'}); - expect(getValidRequestUri(url7, null, null), (uri7Expected, null)); + expect(getValidRequestUri(url7, null), (uri7Expected, null)); }); });