fetchStationToStation static method

Future<List<StationToStation>> fetchStationToStation(
  1. String apiKey, {
  2. String? startStationCode,
  3. String? destinationStationCode,
})

Implementation

static Future<List<StationToStation>> fetchStationToStation(
  String apiKey, {
  String? startStationCode,
  String? destinationStationCode,
}) async {
  final String host = _buildUrl(
    startStationCode: startStationCode,
    destinationStationCode: destinationStationCode,
  );

  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.stationToStationInfos] == null) return [];

  if (responseArr[ApiFields.stationToStationInfos] is List) {
    return ((responseArr[ApiFields.stationToStationInfos] as List?) ?? [])
        .map(
            (stationToStation) => StationToStation.fromJson(stationToStation))
        .toList();
  }

  return [];
}