diff --git a/extra/admin-api/Spacebar.UApi/Controllers/Applications/ApplicationRpcController.cs b/extra/admin-api/Spacebar.UApi/Controllers/Applications/ApplicationRpcController.cs index 08f45c62b..c8dc60cac 100644 --- a/extra/admin-api/Spacebar.UApi/Controllers/Applications/ApplicationRpcController.cs +++ b/extra/admin-api/Spacebar.UApi/Controllers/Applications/ApplicationRpcController.cs @@ -13,6 +13,7 @@ public class ApplicationRpcController : ControllerBase { // // } + // TODO: implement disclosures [HttpGet("disclosures")] public ApplicationDisclosures GetApplicationDisclosures(string applicationId) { return new ApplicationDisclosures { @@ -22,27 +23,22 @@ public class ApplicationRpcController : ControllerBase { }; } + /// + /// Marks a list of flags as acknowledged + /// + /// ID of the application + /// The list of flags to mark as acknowledged + /// The new list of acknowledged flags [HttpPost("disclosures")] - public ApplicationDisclosures AckApplicationDisclosures(string applicationId) { - // TODO: type is wrong, normally only `disclosures` is returned - return new ApplicationDisclosures { - Disclosures = [], - AckedDisclosures = [], - AllAcked = true - }; + public ApplicationDisclosureAck AckApplicationDisclosures(string applicationId, ApplicationDisclosureAck ack) { + return ack; } } -public class ApplicationDisclosures { +public class ApplicationDisclosureAck { [JsonPropertyName("disclosures")] public List Disclosures { get; set; } - [JsonPropertyName("acked_disclosures")] - public List AckedDisclosures { get; set; } - - [JsonPropertyName("all_acked")] - public bool AllAcked { get; set; } - public enum ApplicationDisclosureType { UnspecifiedDisclosure = 0, IpLocation = 1, @@ -51,6 +47,14 @@ public class ApplicationDisclosures { } } +public class ApplicationDisclosures : ApplicationDisclosureAck { + [JsonPropertyName("acked_disclosures")] + public List AckedDisclosures { get; set; } + + [JsonPropertyName("all_acked")] + public bool AllAcked { get; set; } +} + public class RpcApplicationInfo { [JsonPropertyName("id")] public string Id { get; set; } @@ -66,7 +70,7 @@ public class RpcApplicationInfo { [JsonPropertyName("summary")] public string Summary { get; set; } - + [JsonPropertyName("type")] public ApplicationType? Type { get; set; } // what is this? diff --git a/extra/admin-api/Spacebar.UApi/Program.cs b/extra/admin-api/Spacebar.UApi/Program.cs index 3ebc2db5d..dd17d291b 100644 --- a/extra/admin-api/Spacebar.UApi/Program.cs +++ b/extra/admin-api/Spacebar.UApi/Program.cs @@ -101,7 +101,7 @@ app.Use((context, next) => { // add some special sauce app.Map("/", async context => { var client = new StreamingHttpClient(); - var cfg = context.RequestServices.GetService(); + var cfg = context.RequestServices.GetRequiredService(); var requestMessage = new HttpRequestMessage(new HttpMethod(context.Request.Method), cfg.FallbackApiEndpoint); foreach (var header in context.Request.Headers) @@ -122,11 +122,9 @@ app.Map("/", async context => { await context.Response.Body.WriteAsync(data); }); -// fallback to proxy in case we dont have a specific endpoint... -// TODO config app.MapFallback("{*_}", async context => { var client = new StreamingHttpClient(); - var cfg = context.RequestServices.GetService(); + var cfg = context.RequestServices.GetRequiredService(); var requestMessage = new HttpRequestMessage( new HttpMethod(context.Request.Method), cfg.FallbackApiEndpoint + context.Request.Path + context.Request.QueryString