getTerminalFromServer method

  1. @override
Future<Terminal> getTerminalFromServer({
  1. required String deviceId,
  2. required String businessId,
})
override

Implementation

@override
Future<Terminal> getTerminalFromServer({
  required String deviceId,
  required String businessId,
}) {
  final manager = this as TerminalManager;
  if (!isReady) {
    logger.warning(this,
        'Terminal Manager Service not initialised, call initialise first');
    throw Exception(
        'Terminal Manager Service not initialised, call initialise first');
  }

  if (!authService.isAuthenticated) {
    logger.warning(this,
        'user not authenticated, getTerminalFromServer cancelled for device: $deviceId');
    throw Exception(
        'user not authenticated, getTerminalFromServer cancelled for device: $deviceId');
  }

  final lfHttpClient = LittleFishHttpClient();
  String id = deviceId;
  if (!deviceId.contains(businessId)) {
    id = '${businessId}_$deviceId';
  }

  return lfHttpClient
      .get(url: '${manager._endpoint}/$id', user: authService.user)
      .then((result) {
    if (result!.statusCode == HttpStatus.ok) {
      return terminalFromJson(result.data);
    } else {
      final errorText =
          'Failed to get terminal for device: $deviceId, ${result.data}';
      logger.error(
        this,
        errorText,
        error: errorText,
        stackTrace: StackTrace.current,
      );
      debugPrint('### signalr get terminal from server error $errorText');

      throw Exception(errorText);
    }
  });
}