fetchTrainPositions static method

Future<List<TrainPosition>> fetchTrainPositions(
  1. String apiKey
)

Implementation

static Future<List<TrainPosition>> fetchTrainPositions(String apiKey) async {
  const String host =
      'https://api.wmata.com/TrainPositions/TrainPositions?contentType=json';

  final response = await http.get(
    Uri.parse(host),
    headers: {"api_key": apiKey},
  );

  Map<String, dynamic> responseArr = readJson(response.body);

  if (responseArr.isEmpty) return [];

  if (responseArr[ApiFields.trainPositions] == null) return [];

  if (responseArr[ApiFields.trainPositions] is List) {
    return ((responseArr[ApiFields.trainPositions] as List?) ?? [])
        .map((trainPosition) => TrainPosition.fromJson(trainPosition))
        .toList();
  }

  return [];
}