diff --git a/app/src/main/java/com/pixelized/biblib/network/client/IBibLibWebServiceAPI.kt b/app/src/main/java/com/pixelized/biblib/network/client/IBibLibWebServiceAPI.kt index f3fbb54..a752751 100644 --- a/app/src/main/java/com/pixelized/biblib/network/client/IBibLibWebServiceAPI.kt +++ b/app/src/main/java/com/pixelized/biblib/network/client/IBibLibWebServiceAPI.kt @@ -1,11 +1,10 @@ package com.pixelized.biblib.network.client -import com.pixelized.biblib.data.network.query.AuthLoginQuery -import com.pixelized.biblib.data.network.response.AuthLoginResponse -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST -import retrofit2.http.Query +import com.pixelized.biblib.network.data.query.AuthLoginQuery +import com.pixelized.biblib.network.data.response.AuthLoginResponse +import com.pixelized.biblib.network.data.response.BookDetailResponse +import com.pixelized.biblib.network.data.response.BookListResponse +import retrofit2.http.* interface IBibLibWebServiceAPI { @POST("/authent/login") @@ -16,16 +15,16 @@ interface IBibLibWebServiceAPI { // @GET("/authent/user") // suspend fun user(): UserResponse -// -// @GET("/api/book/new") -// suspend fun new(): BookListResponse -// -// @GET("/api/book") -// suspend fun list(): BookListResponse -// -// @GET("/api/book/{id}") -// suspend fun detail(@Path("id") bookId: Int): BookDetailResponse -// + + @GET("/api/book/new") + suspend fun new(): BookListResponse + + @GET("/api/book") + suspend fun list(): BookListResponse + + @GET("/api/book/{id}") + suspend fun detail(@Path("id") bookId: Int): BookDetailResponse + // @GET("/api/book/{id}/send/kindle") // suspend fun send(@Path("id") bookId: Int, @Query("mail") mail: String): LinkedTreeMap // diff --git a/app/src/main/java/com/pixelized/biblib/data/network/query/AuthLoginQuery.kt b/app/src/main/java/com/pixelized/biblib/network/data/query/AuthLoginQuery.kt similarity index 80% rename from app/src/main/java/com/pixelized/biblib/data/network/query/AuthLoginQuery.kt rename to app/src/main/java/com/pixelized/biblib/network/data/query/AuthLoginQuery.kt index 5cdca94..1817093 100644 --- a/app/src/main/java/com/pixelized/biblib/data/network/query/AuthLoginQuery.kt +++ b/app/src/main/java/com/pixelized/biblib/network/data/query/AuthLoginQuery.kt @@ -1,4 +1,4 @@ -package com.pixelized.biblib.data.network.query +package com.pixelized.biblib.network.data.query import com.google.gson.annotations.SerializedName diff --git a/app/src/main/java/com/pixelized/biblib/data/network/response/AuthLoginResponse.kt b/app/src/main/java/com/pixelized/biblib/network/data/response/AuthLoginResponse.kt similarity index 76% rename from app/src/main/java/com/pixelized/biblib/data/network/response/AuthLoginResponse.kt rename to app/src/main/java/com/pixelized/biblib/network/data/response/AuthLoginResponse.kt index c54b0e6..4038f6b 100644 --- a/app/src/main/java/com/pixelized/biblib/data/network/response/AuthLoginResponse.kt +++ b/app/src/main/java/com/pixelized/biblib/network/data/response/AuthLoginResponse.kt @@ -1,4 +1,4 @@ -package com.pixelized.biblib.data.network.response +package com.pixelized.biblib.network.data.response import com.google.gson.annotations.SerializedName diff --git a/app/src/main/java/com/pixelized/biblib/network/data/response/BookDetailResponse.kt b/app/src/main/java/com/pixelized/biblib/network/data/response/BookDetailResponse.kt new file mode 100644 index 0000000..28b9ec2 --- /dev/null +++ b/app/src/main/java/com/pixelized/biblib/network/data/response/BookDetailResponse.kt @@ -0,0 +1,63 @@ +package com.pixelized.biblib.network.data.response + +import com.google.gson.annotations.SerializedName + +data class BookDetailResponse( + @SerializedName("book_id") + val book_id: Int? = null, + @SerializedName("book_title") + val book_title: String? = null, + @SerializedName("book_sort") + val book_sort: String? = null, + @SerializedName("book_has_cover") + val book_has_cover: Int? = null, + @SerializedName("book_date") + val book_date: String? = null, + @SerializedName("book_series_index") + val book_series_index: Float? = null, + @SerializedName("timestamp") + val timestamp: String? = null, + @SerializedName("last_modified") + val last_modified: String? = null, + @SerializedName("author_id") + val author_id: List? = null, + @SerializedName("author_name") + val author_name: List? = null, + @SerializedName("author_sort") + val author_sort: List? = null, + @SerializedName("lang_id") + val lang_id: String? = null, + @SerializedName("lang_code") + val lang_code: String? = null, + @SerializedName("tag_id") + val tag_id: List? = null, + @SerializedName("tag_name") + val tag_name: List? = null, + @SerializedName("rating") + val rating: String? = null, + @SerializedName("series_id") + val series_id: String? = null, + @SerializedName("series_name") + val series_name: String? = null, + @SerializedName("series_sort") + val series_sort: String? = null, + @SerializedName("comment") + val comment: String? = null, + @SerializedName("data") + val data: List? = null, +) : ErrorResponse() { + data class Data( + // "data_id": "9344", + @SerializedName("data_id") + val data_id: String? = null, + // "data_format": "MOBI", + @SerializedName("data_format") + val data_format: String? = null, + // "data_size": "699027", + @SerializedName("data_size") + val data_size: String? = null, + // "data_name": "Fondation - Isaac Asimov" + @SerializedName("data_name") + val data_name: String? = null, + ) +} diff --git a/app/src/main/java/com/pixelized/biblib/network/data/response/BookListResponse.kt b/app/src/main/java/com/pixelized/biblib/network/data/response/BookListResponse.kt new file mode 100644 index 0000000..4d99078 --- /dev/null +++ b/app/src/main/java/com/pixelized/biblib/network/data/response/BookListResponse.kt @@ -0,0 +1,43 @@ +package com.pixelized.biblib.network.data.response + +import com.google.gson.annotations.SerializedName + +data class BookListResponse( + @SerializedName("lastUpdated") + val lastUpdated: String? = null, // "2020-12-16T23:50:34.258Z" + @SerializedName("data") + val data: List? = null, +) : ErrorResponse() { + data class Book( + @SerializedName("book_id") + val book_id: Int?, //"book_id": 9670, + @SerializedName("book_title") + val book_title: String?, //"book_title": "L’Inconnu de la forêt", + @SerializedName("book_sort") + val book_sort: String?, //"book_sort": "L’Inconnu de la forêt", + @SerializedName("author_sort") + val author_sort: List?, //"author_sort": ["Coben, Harlan"], + @SerializedName("book_has_cover") + val book_has_cover: Int?, //"book_has_cover": 1, + @SerializedName("book_date") + val book_date: String?, //"book_date": "2020-10-15T06:21:32.000Z", + @SerializedName("last_modified") + val last_modified: String?, //"last_modified": "2020-11-08T17:15:23.916Z", + @SerializedName("author_id") + val author_id: List?, //"author_id": ["214"], + @SerializedName("author_name") + val author_name: List?, //"author_name": ["Harlan Coben"], + @SerializedName("lang_id") + val lang_id: String?, //"lang_id": "1", + @SerializedName("lang_code") + val lang_code: String?, //"lang_code": "fra", + @SerializedName("rating") + val rating: String?, //"rating": null, TODO: examples are all null, type unknowed + @SerializedName("series_name") + val series_name: String?, //"series_name": null, + @SerializedName("series_sort") + val series_sort: String?, //"series_sort": null, + @SerializedName("book_series_index") + val book_series_index: Float?, //"book_series_index": 1, + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/pixelized/biblib/data/network/response/ErrorResponse.kt b/app/src/main/java/com/pixelized/biblib/network/data/response/ErrorResponse.kt similarity index 92% rename from app/src/main/java/com/pixelized/biblib/data/network/response/ErrorResponse.kt rename to app/src/main/java/com/pixelized/biblib/network/data/response/ErrorResponse.kt index daf1121..87bf53b 100644 --- a/app/src/main/java/com/pixelized/biblib/data/network/response/ErrorResponse.kt +++ b/app/src/main/java/com/pixelized/biblib/network/data/response/ErrorResponse.kt @@ -1,4 +1,4 @@ -package com.pixelized.biblib.data.network.response +package com.pixelized.biblib.network.data.response import com.google.gson.annotations.SerializedName diff --git a/app/src/main/java/com/pixelized/biblib/ui/composable/items/BookThumbnailComposable.kt b/app/src/main/java/com/pixelized/biblib/ui/composable/items/BookThumbnailComposable.kt index 7d07055..c5b3f3e 100644 --- a/app/src/main/java/com/pixelized/biblib/ui/composable/items/BookThumbnailComposable.kt +++ b/app/src/main/java/com/pixelized/biblib/ui/composable/items/BookThumbnailComposable.kt @@ -18,7 +18,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.pixelized.biblib.R -import com.pixelized.biblib.data.ui.BookThumbnailUio +import com.pixelized.biblib.ui.data.BookThumbnailUio import com.pixelized.biblib.ui.theme.BibLibTheme import com.pixelized.biblib.ui.theme.Teal200 import com.pixelized.biblib.utils.BitmapCache diff --git a/app/src/main/java/com/pixelized/biblib/ui/composable/pages/DetailPageComposable.kt b/app/src/main/java/com/pixelized/biblib/ui/composable/pages/DetailPageComposable.kt index 9d11f4a..d64af0d 100644 --- a/app/src/main/java/com/pixelized/biblib/ui/composable/pages/DetailPageComposable.kt +++ b/app/src/main/java/com/pixelized/biblib/ui/composable/pages/DetailPageComposable.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.pixelized.biblib.R -import com.pixelized.biblib.data.ui.BookUio +import com.pixelized.biblib.ui.data.BookUio import com.pixelized.biblib.ui.composable.items.Image import com.pixelized.biblib.ui.theme.BibLibTheme import com.pixelized.biblib.ui.theme.Teal200 diff --git a/app/src/main/java/com/pixelized/biblib/data/ui/BookThumbnailUio.kt b/app/src/main/java/com/pixelized/biblib/ui/data/BookThumbnailUio.kt similarity index 89% rename from app/src/main/java/com/pixelized/biblib/data/ui/BookThumbnailUio.kt rename to app/src/main/java/com/pixelized/biblib/ui/data/BookThumbnailUio.kt index a255ad0..2ef6f82 100644 --- a/app/src/main/java/com/pixelized/biblib/data/ui/BookThumbnailUio.kt +++ b/app/src/main/java/com/pixelized/biblib/ui/data/BookThumbnailUio.kt @@ -1,4 +1,4 @@ -package com.pixelized.biblib.data.ui +package com.pixelized.biblib.ui.data import com.pixelized.biblib.network.client.IBibLibClient.Companion.THUMBNAIL_URL import java.net.URL diff --git a/app/src/main/java/com/pixelized/biblib/data/ui/BookUio.kt b/app/src/main/java/com/pixelized/biblib/ui/data/BookUio.kt similarity index 91% rename from app/src/main/java/com/pixelized/biblib/data/ui/BookUio.kt rename to app/src/main/java/com/pixelized/biblib/ui/data/BookUio.kt index a4562d1..4446036 100644 --- a/app/src/main/java/com/pixelized/biblib/data/ui/BookUio.kt +++ b/app/src/main/java/com/pixelized/biblib/ui/data/BookUio.kt @@ -1,4 +1,4 @@ -package com.pixelized.biblib.data.ui +package com.pixelized.biblib.ui.data import com.pixelized.biblib.network.client.IBibLibClient.Companion.COVER_URL import java.net.URL diff --git a/app/src/main/java/com/pixelized/biblib/ui/viewmodel/authentication/AuthenticationViewModel.kt b/app/src/main/java/com/pixelized/biblib/ui/viewmodel/authentication/AuthenticationViewModel.kt index 49e19f4..63b986a 100644 --- a/app/src/main/java/com/pixelized/biblib/ui/viewmodel/authentication/AuthenticationViewModel.kt +++ b/app/src/main/java/com/pixelized/biblib/ui/viewmodel/authentication/AuthenticationViewModel.kt @@ -12,7 +12,7 @@ import androidx.lifecycle.viewModelScope import com.google.android.gms.auth.api.signin.GoogleSignIn import com.google.android.gms.auth.api.signin.GoogleSignInAccount import com.google.android.gms.common.api.ApiException -import com.pixelized.biblib.data.network.query.AuthLoginQuery +import com.pixelized.biblib.network.data.query.AuthLoginQuery import com.pixelized.biblib.network.client.IBibLibClient import com.pixelized.biblib.repository.credential.ICredentialRepository import com.pixelized.biblib.repository.googlesignin.IGoogleSingInRepository @@ -20,7 +20,6 @@ import com.pixelized.biblib.ui.viewmodel.authentication.IAuthentication.State import com.pixelized.biblib.utils.exception.MissingTokenException import com.pixelized.biblib.utils.injection.inject import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.delay import kotlinx.coroutines.launch class AuthenticationViewModel : ViewModel(), IAuthentication { diff --git a/app/src/main/java/com/pixelized/biblib/ui/viewmodel/navigation/INavigation.kt b/app/src/main/java/com/pixelized/biblib/ui/viewmodel/navigation/INavigation.kt index 6e8f176..0a4aa9c 100644 --- a/app/src/main/java/com/pixelized/biblib/ui/viewmodel/navigation/INavigation.kt +++ b/app/src/main/java/com/pixelized/biblib/ui/viewmodel/navigation/INavigation.kt @@ -2,7 +2,7 @@ package com.pixelized.biblib.ui.viewmodel.navigation import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData -import com.pixelized.biblib.data.ui.BookUio +import com.pixelized.biblib.ui.data.BookUio interface INavigation { val screen: LiveData diff --git a/app/src/main/java/com/pixelized/biblib/utils/extention/BookUioExt.kt b/app/src/main/java/com/pixelized/biblib/utils/extention/BookUioExt.kt index 2fb08cf..87d6493 100644 --- a/app/src/main/java/com/pixelized/biblib/utils/extention/BookUioExt.kt +++ b/app/src/main/java/com/pixelized/biblib/utils/extention/BookUioExt.kt @@ -1,7 +1,7 @@ package com.pixelized.biblib.utils.extention -import com.pixelized.biblib.data.ui.BookThumbnailUio -import com.pixelized.biblib.data.ui.BookUio +import com.pixelized.biblib.ui.data.BookThumbnailUio +import com.pixelized.biblib.ui.data.BookUio fun BookThumbnailUio.toBookUio(): BookUio { return BookUio( diff --git a/app/src/main/java/com/pixelized/biblib/utils/mock/BookMock.kt b/app/src/main/java/com/pixelized/biblib/utils/mock/BookMock.kt index 55dd48b..dc33956 100644 --- a/app/src/main/java/com/pixelized/biblib/utils/mock/BookMock.kt +++ b/app/src/main/java/com/pixelized/biblib/utils/mock/BookMock.kt @@ -1,6 +1,6 @@ package com.pixelized.biblib.utils.mock -import com.pixelized.biblib.data.ui.BookUio +import com.pixelized.biblib.ui.data.BookUio class BookMock { val book: BookUio = BookUio( diff --git a/app/src/main/java/com/pixelized/biblib/utils/mock/BookThumbnailMock.kt b/app/src/main/java/com/pixelized/biblib/utils/mock/BookThumbnailMock.kt index 275529c..8874794 100644 --- a/app/src/main/java/com/pixelized/biblib/utils/mock/BookThumbnailMock.kt +++ b/app/src/main/java/com/pixelized/biblib/utils/mock/BookThumbnailMock.kt @@ -1,6 +1,6 @@ package com.pixelized.biblib.utils.mock -import com.pixelized.biblib.data.ui.BookThumbnailUio +import com.pixelized.biblib.ui.data.BookThumbnailUio class BookThumbnailMock {