using System.Net.Http.Json; namespace SafeNSound.Sdk; public class SafeNSoundClient(SafeNSoundConfiguration config, string accessToken) { public WrappedHttpClient HttpClient { get; } = new() { BaseAddress = new Uri(config.BaseUri), DefaultRequestHeaders = { Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken) } }; public async Task WhoAmI() { var res = await HttpClient.GetAsync("/auth/whoami"); res.EnsureSuccessStatusCode(); return (await res.Content.ReadFromJsonAsync())!; } #region Alarm public async Task GetAlarm(string userId = "@me") { var res = await HttpClient.GetAsync($"/alarm/{userId}"); res.EnsureSuccessStatusCode(); return (await res.Content.ReadFromJsonAsync())!; } public async Task SetAlarm(AlarmDto alarm) { var res = await HttpClient.PutAsJsonAsync("/alarm/@me", alarm); res.EnsureSuccessStatusCode(); } public async Task DeleteAlarm(string userId = "@me") { var res = await HttpClient.DeleteAsync($"/alarm/{userId}"); res.EnsureSuccessStatusCode(); } #endregion #region Budget #endregion } public class AlarmDto { }