From e7d5b82ebe341cd78ee682b9836defa51fb2e19b Mon Sep 17 00:00:00 2001 From: Chocolaterie <110991127+Chocolaterie@users.noreply.github.com> Date: Mon, 27 Jan 2025 14:30:22 +0100 Subject: [PATCH] Integration version api local + nouvelle version --- app/src/main/AndroidManifest.xml | 1 + .../com/example/tpfilrouge/api/RetrofitTools.kt | 5 ++++- .../example/tpfilrouge/api/ServiceResponseDTO.kt | 4 ++++ .../example/tpfilrouge/article/ArticleService.kt | 5 +++-- .../tpfilrouge/article/ListArticleViewModel.kt | 16 ++++++++++++++-- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/com/example/tpfilrouge/api/ServiceResponseDTO.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6b29e58..962a776 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,6 +6,7 @@ Objet val moshi = Moshi.Builder().add(KotlinJsonAdapterFactory()).build(); diff --git a/app/src/main/java/com/example/tpfilrouge/api/ServiceResponseDTO.kt b/app/src/main/java/com/example/tpfilrouge/api/ServiceResponseDTO.kt new file mode 100644 index 0000000..d764e70 --- /dev/null +++ b/app/src/main/java/com/example/tpfilrouge/api/ServiceResponseDTO.kt @@ -0,0 +1,4 @@ +package com.example.tpfilrouge.api + +data class ServiceResponseDTO(var code: String, var message : String, var data : T?) { +} \ No newline at end of file diff --git a/app/src/main/java/com/example/tpfilrouge/article/ArticleService.kt b/app/src/main/java/com/example/tpfilrouge/article/ArticleService.kt index 5386648..6e86bb8 100644 --- a/app/src/main/java/com/example/tpfilrouge/article/ArticleService.kt +++ b/app/src/main/java/com/example/tpfilrouge/article/ArticleService.kt @@ -1,13 +1,14 @@ package com.example.demoandroid.demoapi import com.example.tpfilrouge.api.RetrofitTools.Companion.retrofit +import com.example.tpfilrouge.api.ServiceResponseDTO import com.example.tpfilrouge.article.Article import retrofit2.http.GET interface ArticleService { - @GET("android-articles.json") - suspend fun getArticles() : List
+ @GET("articles") + suspend fun getArticles() : ServiceResponseDTO> object ArticleApi { val articleService : ArticleService by lazy { retrofit.create(ArticleService::class.java) } diff --git a/app/src/main/java/com/example/tpfilrouge/article/ListArticleViewModel.kt b/app/src/main/java/com/example/tpfilrouge/article/ListArticleViewModel.kt index cd18707..c230654 100644 --- a/app/src/main/java/com/example/tpfilrouge/article/ListArticleViewModel.kt +++ b/app/src/main/java/com/example/tpfilrouge/article/ListArticleViewModel.kt @@ -20,8 +20,20 @@ class ListArticleViewModel : ViewModel() { AppDialogHelpers.get().showDialog("Chargement des articles en cours") viewModelScope.launch { - // Récupérer les articles via un API Web - articles.value = ArticleService.ArticleApi.articleService.getArticles(); + // Récupérer le metier listArticle via un API Web + val serviceResponse = ArticleService.ArticleApi.articleService.getArticles(); + + // Plus tard il sera possible de tester le code métier + /* + if (serviceResponse.code.equals("200")) { + + } + */ + + // La liste des articles ecoutables se met à jour par rapport à la + // la liste des articles dans le data + // Node : on remaque !! aprés data car data est nullable (!! que si nullable)) + articles.value = serviceResponse.data!!; // Fermer la popup de chargement AppDialogHelpers.get().closeDialog();