PolyBooks / sdp_polyBooks

5 stars 1 forks source link

Implementing a cache for searching for books by isbns #227

Closed ghost closed 3 years ago

ghost commented 3 years ago

Description

Cette PR doit implémenter un cache pour des livres.

Pour faciliter l'implémentation du cache, j'ai refactoré les BookDatabase pour avoir une interface BookProvider qui permet de chercher des livres par ISBN, et une interface BookDatabasequi permentent de chercher par ISBN, Titre, et Interêt. J'ai fait ça parce que faire un cache pour un BookProvider est plus simple que pour un BookDatabase.

J'ai refactor FBBookDatabase pour que la classe ne va pas elle-même chercher les livre que Firebase ne contient pas sur OpenLibrary. Pour obtenir un résultat similaire, il faut utiliser la nouvelle classe CachedBookProvider qui permet d'utiliser un BookProvider comme cache pour un second. Exemple d'utilisation dans Database.kt

Afin de pouvoir implémenter le cache, il faut que le cache aie un Context. Ainsi pour obtenir une database, il faut un Context pour pouvoir obtenir une Database.

Pour aider à review

Vous pouvez commencer par aller voir Database.kt et comment la BookDatabase est définie. Celà vous mènera à aller regarder les classe CachedBookProvider et LocalBookCache et vous donne une idée de comment les utiliser. Il serait aussi bien d'aller voir les définitions de BookProvider et BookDatabase. Finalement Vous pouvez regarder ListBookActivity pour voir comment instancier les databases dans les Activités. Ça a un peu changé pour pouvoir passer un Context aux databases

Pull reviewers stats

Stats for the last 180 days: User Total reviews Median time to review Total comments
so7fie 29 13h 38m)) 60
Snowflake8 26 8h 39m)) 55
Huntsekkern 30 6h 15m)) 54
RaulinN 32 7h 45m)) 45
DGoedtkindtEPFL 38 15h 26m)) 44
Laniakea1999 20 14h 48m)) 15

Pull reviewers stats

Stats for the last 180 days: User Total reviews Median time to review Total comments
so7fie 29 13h 38m)) 60
Snowflake8 29 7h 23m)) 56
Huntsekkern 31 5h 2m)) 54
DGoedtkindtEPFL 40 15h 26m)) 47
RaulinN 33 7h 28m)) 45
Laniakea1999 22 12h 8m)) 15
RaulinN commented 3 years ago

Nice work! There was quite a few changes in tests I didnt thoroughly check. However, looks good ! :)