From de603c46e2fc996623719e3ea81dcc0bb86d0d76 Mon Sep 17 00:00:00 2001 From: Pete Gregory Date: Mon, 23 Feb 2026 16:02:52 +0000 Subject: [PATCH] add LIKE filtering on number value by default --- lib/services/data_service/data_service_traction.dart | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/services/data_service/data_service_traction.dart b/lib/services/data_service/data_service_traction.dart index 2830782..d8631ba 100644 --- a/lib/services/data_service/data_service_traction.dart +++ b/lib/services/data_service/data_service_traction.dart @@ -32,7 +32,7 @@ extension DataServiceTraction on DataService { payload['class'] = locoClass; } if (locoNumber != null && locoNumber.isNotEmpty) { - payload['number'] = locoNumber; + payload['number'] = _withLikeWildcards(locoNumber); } if (filters != null) { filters.forEach((key, value) { @@ -67,6 +67,14 @@ extension DataServiceTraction on DataService { } + String _withLikeWildcards(String rawValue) { + final value = rawValue.trim(); + if (value.isEmpty) return value; + final hasLeadingWildcard = value.startsWith('%'); + final hasTrailingWildcard = value.endsWith('%'); + return '${hasLeadingWildcard ? '' : '%'}$value${hasTrailingWildcard ? '' : '%'}'; + } + Future> fetchLocoTimeline( int locoId, { bool includeAllPending = false,