fix: review changes

This commit is contained in:
DenserMeerkat
2023-12-22 20:25:26 +05:30
parent aceb4c9b01
commit 06f8cd7f02
14 changed files with 104 additions and 110 deletions

View File

@ -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) {

View File

@ -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);

View File

@ -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) {

View File

@ -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) {

View File

@ -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<NameValueModel>? requestHeaders;
final List<NameValueModel>? requestParams;
final List<bool>? enabledHeaders;
final List<bool>? enabledParams;
final List<bool>? isHeaderEnabledList;
final List<bool>? isParamEnabledList;
final ContentType requestBodyContentType;
final String? requestBody;
final int? responseStatus;
final String? message;
final ResponseModel? responseModel;
Map<String, String> get headersMap =>
rowsToMap(getEnabledRows(requestHeaders, enabledHeaders)) ?? {};
Map<String, String> get paramsMap =>
rowsToMap(getEnabledRows(requestParams, enabledParams)) ?? {};
List<NameValueModel>? get enabledRequestHeaders =>
getEnabledRows(requestHeaders, isHeaderEnabledList);
List<NameValueModel>? get enabledRequestParams =>
getEnabledRows(requestParams, isParamEnabledList);
Map<String, String> get enabledHeadersMap =>
rowsToMap(enabledRequestHeaders) ?? {};
Map<String, String> get enabledParamsMap =>
rowsToMap(enabledRequestParams) ?? {};
Map<String, String> get headersMap => rowsToMap(requestHeaders) ?? {};
Map<String, String> 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<NameValueModel>? requestHeaders,
List<NameValueModel>? requestParams,
List<bool>? enabledHeaders,
List<bool>? enabledParams,
List<bool>? isHeaderEnabledList,
List<bool>? 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<bool>?;
final enabledParams = data["enabledParams"] as List<bool>?;
final isHeaderEnabledList = data["isHeaderEnabledList"] as List<bool>?;
final isParamEnabledList = data["isParamEnabledList"] as List<bool>?;
try {
requestBodyContentType =
ContentType.values.byName(data["requestBodyContentType"] as String);
@ -153,8 +162,8 @@ class RequestModel {
requestParams: requestParams != null
? mapToRows(Map<String, String>.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,

View File

@ -123,8 +123,8 @@ class CollectionStateNotifier
int? requestTabIndex,
List<NameValueModel>? requestHeaders,
List<NameValueModel>? requestParams,
List<bool>? enabledHeaders,
List<bool>? enabledParams,
List<bool>? isHeaderEnabledList,
List<bool>? 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,

View File

@ -16,7 +16,7 @@ class EditRequestHeaders extends ConsumerStatefulWidget {
class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
late List<NameValueModel> rows;
late List<bool> enabledRows;
late List<bool> isRowEnabledList;
final random = Random.secure();
late int seed;
@ -30,7 +30,7 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
ref.read(collectionStateNotifierProvider.notifier).update(
activeId,
requestHeaders: rows,
enabledHeaders: enabledRows,
isHeaderEnabledList: isRowEnabledList,
);
}
@ -45,7 +45,8 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
kNameValueEmptyModel,
]
: rH;
enabledRows = ref.read(activeRequestModelProvider)?.enabledHeaders ??
isRowEnabledList =
ref.read(activeRequestModelProvider)?.isHeaderEnabledList ??
List.filled(rows.length, true, growable: true);
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
@ -58,10 +59,10 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
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<EditRequestHeaders> {
onTap: () {
seed = random.nextInt(kRandMax);
if (rows.length == 1) {
setState(() {
rows = [
kNameValueEmptyModel,
];
enabledRows = [true];
});
isRowEnabledList = [true];
} else {
setState(() {
enabledRows.removeAt(row.index);
isRowEnabledList.removeAt(row.index);
rows.removeAt(row.index);
});
}
_onFieldChange(activeId!);
},
@ -169,10 +166,8 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
padding: const EdgeInsets.only(bottom: 30),
child: ElevatedButton.icon(
onPressed: () {
setState(() {
rows.add(kNameValueEmptyModel);
enabledRows.add(true);
});
isRowEnabledList.add(true);
_onFieldChange(activeId!);
},
icon: const Icon(Icons.add),

View File

@ -17,7 +17,7 @@ class EditRequestURLParams extends ConsumerStatefulWidget {
class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
late List<NameValueModel> rows;
late List<bool> enabledRows;
late List<bool> isRowEnabledList;
final random = Random.secure();
late int seed;
@ -31,7 +31,7 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
ref.read(collectionStateNotifierProvider.notifier).update(
activeId,
requestParams: rows,
enabledParams: enabledRows,
isParamEnabledList: isRowEnabledList,
);
}
@ -46,7 +46,8 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
kNameValueEmptyModel,
]
: rP;
enabledRows = ref.read(activeRequestModelProvider)?.enabledParams ??
isRowEnabledList =
ref.read(activeRequestModelProvider)?.isParamEnabledList ??
List.filled(rows.length, true, growable: true);
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
@ -60,10 +61,10 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
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<EditRequestURLParams> {
onTap: () {
seed = random.nextInt(kRandMax);
if (rows.length == 1) {
setState(() {
rows = [
kNameValueEmptyModel,
];
enabledRows = [true];
});
isRowEnabledList = [true];
} else {
setState(() {
enabledRows.removeAt(row.index);
isRowEnabledList.removeAt(row.index);
rows.removeAt(row.index);
});
}
_onFieldChange(activeId!);
},
@ -173,7 +170,7 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
onPressed: () {
setState(() {
rows.add(kNameValueEmptyModel);
enabledRows.add(true);
isRowEnabledList.add(true);
});
_onFieldChange(activeId!);
},

View File

@ -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<String, String> headers = requestModel.headersMap;
Map<String, String> headers = requestModel.enabledHeadersMap;
http.Response response;
String? body;
try {

View File

@ -111,11 +111,11 @@ Uint8List jsonMapToBytes(Map<String, dynamic>? map) {
}
List<NameValueModel>? getEnabledRows(
List<NameValueModel>? rows, List<bool>? enabledList) {
if (rows == null || enabledList == null) {
List<NameValueModel>? rows, List<bool>? isRowEnabledList) {
if (rows == null || isRowEnabledList == null) {
return rows;
}
List<NameValueModel> finalRows =
rows.where((element) => enabledList[rows.indexOf(element)]).toList();
rows.where((element) => isRowEnabledList[rows.indexOf(element)]).toList();
return finalRows == [] ? null : finalRows;
}

View File

@ -80,8 +80,7 @@ Map<String, dynamic> requestModelToHARJsonRequest(
var rec = getValidRequestUri(
requestModel.url,
requestModel.requestParams,
requestModel.enabledParams,
requestModel.enabledRequestParams,
defaultUriScheme: defaultUriScheme,
);
@ -126,9 +125,9 @@ Map<String, dynamic> 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 = {

View File

@ -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<NameValueModel>? requestParams, List<bool>? enabledParams,
String? url, List<NameValueModel>? requestParams,
{String defaultUriScheme = kDefaultUriScheme}) {
url = url?.trim();
if (url == null || url == "") {
@ -88,8 +88,7 @@ String stripUrlParams(String url) {
uri = uri.removeFragment();
}
Map<String, String>? queryParams =
rowsToMap(getEnabledRows(requestParams, enabledParams));
Map<String, String>? queryParams = rowsToMap(requestParams);
if (queryParams != null) {
if (uri.hasQuery) {
Map<String, String> urlQueryParams = uri.queryParameters;

View File

@ -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"

View File

@ -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));
});
});