getChapter method Null safety

Future<Chapter?> getChapter(
  1. String uuid
)

Gets the chapter specified by the UUID

Returns Null if no chapters found

Implementation

Future<Chapter?> getChapter(String uuid) async {
  var res;
  if (token != '') {
    res = await http.get(Uri.parse('https://api.mangadex.org/chapter/$uuid'),
        headers: {HttpHeaders.authorizationHeader: 'Bearer $token'});
  } else {
    res = await http.get(Uri.parse('https://api.mangadex.org/chapter/$uuid'));
  }

  if (res.statusCode == 404) {
    return null;
  }

  var data = jsonDecode(res.body)['data'];

  // get MD@H URL
  var md = await http.get(
      Uri.parse("https://api.mangadex.org/at-home/server/${data['id']}"));
  var atHomeURL = jsonDecode(md.body)['baseUrl'];

  // create chapter URL
  // ignore: omit_local_variable_types
  List<String> normalChapter = [];
  for (var chapter in data['attributes']['data']) {
    normalChapter
        .add('$atHomeURL/data/${data["attributes"]["hash"]}/$chapter');
  }

  // create data-saver URL
  // ignore: omit_local_variable_types
  List<String> saverChapter = [];
  for (var chapter in data['attributes']['data']) {
    saverChapter
        .add('$atHomeURL/data-saver/${data["attributes"]["hash"]}/$chapter');
  }
  var chapter = Chapter(
      id: data['id'],
      title: data['attributes']['title'],
      volume: data['attributes']['volume'],
      chapter: data['attributes']['chapter'],
      translatedLanguage: data['attributes']['translatedLanguage'],
      chapterURLs: normalChapter,
      dataSaverChapterURLs: saverChapter,
      createdAt: data['attributes']['createdAt'],
      updatedAt: data['attributes']['updatedAt'],
      groupIds: data['attributes']['groups'],
      mangaId: data['attributes']['manga'],
      uploader: data['attributes']['uploader']);
  return chapter;
}