using System; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace file_finder__test.DataBaseModules{ //Quinn public class DataBase:IDisposable { private readonly HttpClient _client; private readonly string _baseUrl; public DataBase(string baseUrl) { _baseUrl = baseUrl.TrimEnd('/'); _client = new HttpClient(); } // Core method to send JSON requests private async Task SendRequestAsync(string endpoint, object data) { string url = $"{_baseUrl}/{endpoint}"; string jsonData = System.Text.Json.JsonSerializer.Serialize(data); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); HttpResponseMessage response = await _client.PostAsync(url, content); response.EnsureSuccessStatusCode(); // throw if erro return await response.Content.ReadAsStringAsync(); } // User methods public Task UserSet(object userData) => SendRequestAsync("user/set.php", userData); public Task UserGet(object requestData) => SendRequestAsync("user/get.php", requestData); public Task UserCreate(object userData) => SendRequestAsync("user/create.php", userData); // Media methods public Task MediaGet(object requestData) => SendRequestAsync("media/get.php", requestData); public Task MediaAdd(object mediaData) => SendRequestAsync("media/add.php", mediaData); public Task MediaRemove(object mediaData) => SendRequestAsync("media/remove.php", mediaData); // update muvie watch counter public Task MovieWatchIncrement(object requestData) => SendRequestAsync("movie/watch.php", requestData); public void Dispose() { _client.Dispose(); } } }