mirror of
https://github.com/rzuasti/oott.git
synced 2026-07-08 19:21:54 +02:00
Break the 372-line frontend API client into focused files under lib/utils/api/: error mapping (api_error.dart), Dio setup behind a buildDio factory (dio_config.dart), and device/scanner/notification endpoints as extensions in part files. Collapse the five near-identical scanner-status methods via a generic _getModel helper and de-duplicate the pagination logic via a shared _paginate helper. The BackendAPI singleton and dioErrorToUserMessage remain importable from oott_api.dart unchanged, so no call sites are affected. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
41 lines
1.2 KiB
Dart
41 lines
1.2 KiB
Dart
part of '../oott_api.dart';
|
|
|
|
/// Per-scanner status endpoints. Every scanner exposes the same
|
|
/// `/<scanner>_scanner/status` shape, so each getter just decodes its model.
|
|
extension ScannerApi on BackendAPI {
|
|
Future<ArpScannerStatus> getArpScannerStatus({CancelToken? cancelToken}) =>
|
|
_getModel(
|
|
'/arp_scanner/status',
|
|
ArpScannerStatus.fromJson,
|
|
cancelToken: cancelToken,
|
|
);
|
|
|
|
Future<MdnsScannerStatus> getMdnsScannerStatus({CancelToken? cancelToken}) =>
|
|
_getModel(
|
|
'/mdns_scanner/status',
|
|
MdnsScannerStatus.fromJson,
|
|
cancelToken: cancelToken,
|
|
);
|
|
|
|
Future<SsdpScannerStatus> getSsdpScannerStatus({CancelToken? cancelToken}) =>
|
|
_getModel(
|
|
'/ssdp_scanner/status',
|
|
SsdpScannerStatus.fromJson,
|
|
cancelToken: cancelToken,
|
|
);
|
|
|
|
Future<DhcpScannerStatus> getDhcpScannerStatus({CancelToken? cancelToken}) =>
|
|
_getModel(
|
|
'/dhcp_scanner/status',
|
|
DhcpScannerStatus.fromJson,
|
|
cancelToken: cancelToken,
|
|
);
|
|
|
|
Future<SnmpScannerStatus> getSnmpScannerStatus({CancelToken? cancelToken}) =>
|
|
_getModel(
|
|
'/snmp_scanner/status',
|
|
SnmpScannerStatus.fromJson,
|
|
cancelToken: cancelToken,
|
|
);
|
|
}
|