using Model; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Net.Http; using System.Net.Http.Headers; using System.Net.Http.Json; using System.Text; using System.Text.Json; using System.Threading.Tasks; namespace Data { public static class ClientAPI { private const string ROOT_URL = "http://82.64.164.20:8888/"; //routes inscrit private const string GET_INSCRITS_DATA_URL = ROOT_URL+"Inscrit/"; private const string POST_EMAIL_INSCRIT_DATA_URL = ROOT_URL+"Inscrit/FromMail/"; private const string PUT_PASSWORD_INSCRIT_DATA_URL = ROOT_URL+"Inscrit/UpdatePassword/"; private const string POST_ADD_INSCRIT_DATA_URL = ROOT_URL + "Inscrit/add/"; private const string DELETE_INSCRIT_DATA_URL = ROOT_URL + "Inscrit/delete/"; //add all routes private static HttpClient cli = new HttpClient(); public static async Task> GetInscritsAsync() { HttpResponseMessage reponse = await cli.GetAsync(GET_INSCRITS_DATA_URL); if(reponse.IsSuccessStatusCode) { return JsonConvert.DeserializeObject>(await reponse.Content.ReadAsStringAsync()); } else { throw new HttpRequestException(reponse.StatusCode.ToString()); } } public static async Task> GetInscritAsync(string email) { var dataBody = new Dictionary { { "email", email } }; HttpResponseMessage reponse = await cli.PostAsJsonAsync(POST_EMAIL_INSCRIT_DATA_URL, dataBody); if (reponse.IsSuccessStatusCode) { return JsonConvert.DeserializeObject>(await reponse.Content.ReadAsStringAsync()); } else { throw new HttpRequestException(reponse.StatusCode.ToString()); } } public static async Task PutPasswordInscritAsync(string email, string password) { var dataBody = new Dictionary { { "email", email }, { "password", password } }; HttpResponseMessage reponse = await cli.PutAsJsonAsync(PUT_PASSWORD_INSCRIT_DATA_URL, dataBody); if (reponse.IsSuccessStatusCode) { return true; } else { throw new HttpRequestException(reponse.StatusCode.ToString()); } } public static async Task PostAddInscritAsync(string nom, string prenom, string email, string password) { var dataBody = new Dictionary { { "nom", nom }, { "prenom", prenom }, { "email", email }, { "password", password } }; HttpResponseMessage reponse = await cli.PostAsJsonAsync(POST_ADD_INSCRIT_DATA_URL, dataBody); if (reponse.IsSuccessStatusCode) { return true; } else { throw new HttpRequestException(reponse.StatusCode.ToString()); } } public static async Task DeleteInscritAsync(string email) { var dataBody = new Dictionary { { "email", email } }; var reponse = cli.SendAsync( new HttpRequestMessage(HttpMethod.Delete, DELETE_INSCRIT_DATA_URL) { Content = new FormUrlEncodedContent(dataBody) }) .Result; if (reponse.IsSuccessStatusCode) { return true; } else { throw new HttpRequestException(reponse.StatusCode.ToString()); } } } }