|
|
|
@ -1,6 +1,5 @@
|
|
|
|
|
/*!
|
|
|
|
|
* \file HttpRequest.cs
|
|
|
|
|
* \author Antoine PEREDERII
|
|
|
|
|
* \brief Fichier contenant la classe HttpRequest.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
@ -10,7 +9,7 @@ using Dto;
|
|
|
|
|
using Shared;
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \brief Classe représentant un client HTTP pour les requêtes vers un service de gestion de livres.
|
|
|
|
|
* \brief Classe représentant un client HTTP pour les requêtes vers un service de gestion de elément.
|
|
|
|
|
*/
|
|
|
|
|
public class HttpRequest<T> where T : class
|
|
|
|
|
{
|
|
|
|
@ -18,7 +17,7 @@ public class HttpRequest<T> where T : class
|
|
|
|
|
public HttpClient HttpClient => _httpClient;
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \brief Récupère tous les livres de manière asynchrone.
|
|
|
|
|
* \brief Récupère tous les activitée de manière asynchrone.
|
|
|
|
|
* \return Une tâche représentant l'opération asynchrone qui retourne une liste de T.
|
|
|
|
|
*/
|
|
|
|
|
public async Task<List<T>> GetAllAsync()
|
|
|
|
@ -27,24 +26,25 @@ public class HttpRequest<T> where T : class
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \brief Récupère les activités par index et compte de manière asynchrone.
|
|
|
|
|
* \brief Récupère les élements par index et compte de manière asynchrone.
|
|
|
|
|
* \param index L'index de départ pour la pagination.
|
|
|
|
|
* \param count Le nombre d'éléments à récupérer.
|
|
|
|
|
* \return Une tâche représentant l'opération asynchrone qui retourne une liste de T.
|
|
|
|
|
*/
|
|
|
|
|
public async Task<List<T>> GetAsync((ActivityOrderCriteria, AthleteOrderCriteria) criteria, bool descending, int index, int count)
|
|
|
|
|
// [TODO] enum
|
|
|
|
|
public async Task<List<T>> GetAsync(Enum criteria, bool descending, int index, int count)
|
|
|
|
|
{
|
|
|
|
|
return await _httpClient.GetFromJsonAsync<List<T>>($"?OrderingPropertyName={criteria}&Descending={descending}&Index={index}&Count={count}");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \brief Récupère un livre par son identifiant de manière asynchrone.
|
|
|
|
|
* \param id L'identifiant du livre à récupérer.
|
|
|
|
|
* \brief Récupère un elément par son identifiant de manière asynchrone.
|
|
|
|
|
* \param id L'identifiant du elément à récupérer.
|
|
|
|
|
* \return Une tâche représentant l'opération asynchrone qui retourne une liste de T.
|
|
|
|
|
*/
|
|
|
|
|
public async Task<List<T>> GetByIdAsync(int id)
|
|
|
|
|
public async Task<T?> GetByIdAsync(int id)
|
|
|
|
|
{
|
|
|
|
|
return await _httpClient.GetFromJsonAsync<List<T>>($"{id}");
|
|
|
|
|
return await _httpClient.GetFromJsonAsync<T>($"{id}");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<int> GetNbItems()
|
|
|
|
@ -52,7 +52,7 @@ public class HttpRequest<T> where T : class
|
|
|
|
|
return _httpClient.GetFromJsonAsync<int>("count");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<IEnumerable<T>?> GetActivitiesByUser(int userId, int index, int count, (ActivityOrderCriteria, AthleteOrderCriteria) orderCriteria, bool descending = false)
|
|
|
|
|
public Task<IEnumerable<T>?> GetActivitiesByUser(int userId, int index, int count, ActivityOrderCriteria orderCriteria, bool descending = false)
|
|
|
|
|
{
|
|
|
|
|
return _httpClient.GetFromJsonAsync<IEnumerable<T>?>($"?userId={userId}&index={index}&count={count}&orderCriteria={orderCriteria}&descending={descending}");
|
|
|
|
|
}
|
|
|
|
@ -63,9 +63,9 @@ public class HttpRequest<T> where T : class
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \brief Ajoute un livre de manière asynchrone.
|
|
|
|
|
* \param book Le livre à ajouter.
|
|
|
|
|
* \return Une tâche représentant l'opération asynchrone qui retourne le livre ajouté (T).
|
|
|
|
|
* \brief Ajoute une activity de manière asynchrone.
|
|
|
|
|
* \param book Le elément à ajouter.
|
|
|
|
|
* \return Une tâche représentant l'opération asynchrone qui retourne le activity ajouté (T).
|
|
|
|
|
*/
|
|
|
|
|
public async Task<T> PostAsync(T activity)
|
|
|
|
|
{
|
|
|
|
@ -75,10 +75,10 @@ public class HttpRequest<T> where T : class
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \brief Met à jour un livre de manière asynchrone.
|
|
|
|
|
* \param id L'identifiant du livre à mettre à jour.
|
|
|
|
|
* \param book Les nouvelles données du livre à mettre à jour.
|
|
|
|
|
* \return Une tâche représentant l'opération asynchrone qui retourne le livre mis à jour (T).
|
|
|
|
|
* \brief Met à jour un elément de manière asynchrone.
|
|
|
|
|
* \param id L'identifiant du elément à mettre à jour.
|
|
|
|
|
* \param book Les nouvelles données du elément à mettre à jour.
|
|
|
|
|
* \return Une tâche représentant l'opération asynchrone qui retourne le elément mis à jour (T).
|
|
|
|
|
*/
|
|
|
|
|
public async Task<T> PutAsync(int id, T activity)
|
|
|
|
|
{
|
|
|
|
@ -88,8 +88,8 @@ public class HttpRequest<T> where T : class
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \brief Supprime un livre de manière asynchrone.
|
|
|
|
|
* \param id L'identifiant du livre à supprimer.
|
|
|
|
|
* \brief Supprime un elément de manière asynchrone.
|
|
|
|
|
* \param id L'identifiant du elément à supprimer.
|
|
|
|
|
* \return Une tâche représentant l'opération asynchrone.
|
|
|
|
|
*/
|
|
|
|
|
public async Task DeleteAsync(int id)
|
|
|
|
|