query method
Retrieves query and parameters for a given path.
Implementation
RouteflyQuery? query(String path) {
final data = <String, dynamic>{};
final uriCandidate = Uri.parse(path);
if (uri.pathSegments.length != uriCandidate.pathSegments.length) {
return null;
}
for (var i = 0; i < uriCandidate.pathSegments.length; i++) {
final segmentCandidate = uriCandidate.pathSegments[i];
final segment = uri.pathSegments[i];
if (segmentCandidate.contains('[')) {
final key = segmentCandidate //
.replaceFirst('[', '')
.replaceFirst(']', '');
final value = num.tryParse(segment) ?? segment;
data[key] = value;
continue;
}
if (segment != segmentCandidate) {
return null;
}
}
return RouteflyQuery(
uri.queryParameters,
data,
request?.arguments,
);
}