Libro.fromGoogleBooksJson constructor
Crea un oggetto Libro partendo da un JSON proveniente dalla Google Books API.
Implementation
factory Libro.fromGoogleBooksJson(Map<String, dynamic> json) {
final volumeInfo = json['volumeInfo'] as Map<String, dynamic>?;
final imageLinks = volumeInfo?['imageLinks'] as Map<String, dynamic>?;
final List<dynamic>? categories =
volumeInfo?['categories'] as List<dynamic>?;
GenereLibro? genere;
if (categories != null && categories.isNotEmpty) {
final categorieDaControllare =
categories.take(3).map((c) => c.toString().toLowerCase()).toList();
for (final categoria in categorieDaControllare) {
genere = _mapCategoriaToGenere(categoria);
if (genere != null) {
break;
}
}
}
return Libro(
titolo: volumeInfo?['title'] as String? ?? 'Titolo Sconosciuto',
genere: genere,
autori: _parseAuthors(volumeInfo),
numeroPagine: volumeInfo?['pageCount'] as int?,
lingua: volumeInfo?['language'] as String?,
trama: volumeInfo?['description'] as String?,
publisher: volumeInfo?['publisher'] as String?,
isbn: _parseIsbn(volumeInfo),
dataPubblicazione: _parsePublishedDate(volumeInfo),
voto: null,
note: null,
stato: null,
copertina: imageLinks?['thumbnail'] as String?,
);
}