refactor: inline parseQueryString in parseIdentifierIntoParts

This commit is contained in:
Lukas Lihotzki 2021-09-22 17:52:23 +02:00 committed by Krille Fear
parent 8ea01fcee0
commit 7fce5b6040
1 changed files with 7 additions and 20 deletions

View File

@ -64,15 +64,6 @@ extension MatrixIdExtension on String {
MatrixIdentifierStringExtensionResults parseIdentifierIntoParts() { MatrixIdentifierStringExtensionResults parseIdentifierIntoParts() {
const matrixUriPrefix = 'matrix:'; const matrixUriPrefix = 'matrix:';
final via = <String>{};
String action;
final parseQueryString = (String qs) {
if (qs == null) return;
final uri = Uri(query: qs);
via = (uri.queryParametersAll['via'] ?? []).toSet();
action = uri.queryParameters['action'];
};
// check if we have a "matrix:" uri // check if we have a "matrix:" uri
if (toLowerCase().startsWith(matrixUriPrefix)) { if (toLowerCase().startsWith(matrixUriPrefix)) {
final uri = Uri.tryParse(this); final uri = Uri.tryParse(this);
@ -100,14 +91,12 @@ extension MatrixIdExtension on String {
if (identifiers.isEmpty) { if (identifiers.isEmpty) {
return null; return null;
} }
final queryString = uri.query.isNotEmpty ? uri.query : null;
parseQueryString(queryString);
return MatrixIdentifierStringExtensionResults( return MatrixIdentifierStringExtensionResults(
primaryIdentifier: identifiers.first, primaryIdentifier: identifiers.first,
secondaryIdentifier: identifiers.length > 1 ? identifiers[1] : null, secondaryIdentifier: identifiers.length > 1 ? identifiers[1] : null,
queryString: queryString, queryString: uri.query.isNotEmpty ? uri.query : null,
via: via, via: (uri.queryParametersAll['via'] ?? []).toSet(),
action: action, action: uri.queryParameters['action'],
); );
} }
@ -133,15 +122,13 @@ extension MatrixIdExtension on String {
!(match.group(2)?.isValidMatrixId ?? true)) { !(match.group(2)?.isValidMatrixId ?? true)) {
return null; return null;
} }
final queryString = final uri = Uri(query: match.group(3));
match.group(3)?.isNotEmpty ?? false ? match.group(3) : null;
parseQueryString(queryString);
return MatrixIdentifierStringExtensionResults( return MatrixIdentifierStringExtensionResults(
primaryIdentifier: match.group(1), primaryIdentifier: match.group(1),
secondaryIdentifier: match.group(2), secondaryIdentifier: match.group(2),
queryString: queryString, queryString: uri.query.isNotEmpty ? uri.query : null,
via: via, via: (uri.queryParametersAll['via'] ?? []).toSet(),
action: action, action: uri.queryParameters['action'],
); );
} }
} }