summaryrefslogtreecommitdiffstats
path: root/server/src/Endpoints
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-06-05 00:19:10 +0200
committerivarlovlie <git@ivarlovlie.no>2022-06-05 00:19:10 +0200
commit1bd30ee34323f150c63fc537e0d131dca29dc4ef (patch)
tree12f8315916537bd4c9692a2d220a819e78a892fb /server/src/Endpoints
parentd46743d565461144e1aabfb4b6a297d8387c4075 (diff)
downloadgreatoffice-1bd30ee34323f150c63fc537e0d131dca29dc4ef.tar.xz
greatoffice-1bd30ee34323f150c63fc537e0d131dca29dc4ef.zip
refactor: Implement caching in VaultService and use VaultService instead of IOptions
Diffstat (limited to 'server/src/Endpoints')
-rw-r--r--server/src/Endpoints/Internal/Root/ReadConfigurationRoute.cs17
-rw-r--r--server/src/Endpoints/Internal/Root/RefreshConfigurationRoute.cs15
-rw-r--r--server/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs4
3 files changed, 34 insertions, 2 deletions
diff --git a/server/src/Endpoints/Internal/Root/ReadConfigurationRoute.cs b/server/src/Endpoints/Internal/Root/ReadConfigurationRoute.cs
new file mode 100644
index 0000000..e0dcca3
--- /dev/null
+++ b/server/src/Endpoints/Internal/Root/ReadConfigurationRoute.cs
@@ -0,0 +1,17 @@
+namespace IOL.GreatOffice.Api.Endpoints.Internal.Root;
+
+public class ReadConfigurationRoute : RouteBaseSync.WithoutRequest.WithActionResult
+{
+ private readonly VaultService _vaultService;
+
+ public ReadConfigurationRoute(VaultService vaultService) {
+ _vaultService = vaultService;
+ }
+
+ [AllowAnonymous]
+ [HttpGet("~/_/configuration")]
+ public override ActionResult Handle() {
+ var config = _vaultService.GetCurrentAppConfiguration();
+ return Content(JsonSerializer.Serialize(config.GetPublicVersion()), "application/json");
+ }
+}
diff --git a/server/src/Endpoints/Internal/Root/RefreshConfigurationRoute.cs b/server/src/Endpoints/Internal/Root/RefreshConfigurationRoute.cs
new file mode 100644
index 0000000..4b1beec
--- /dev/null
+++ b/server/src/Endpoints/Internal/Root/RefreshConfigurationRoute.cs
@@ -0,0 +1,15 @@
+namespace IOL.GreatOffice.Api.Endpoints.Internal.Root;
+
+public class RefreshConfigurationRoute : RouteBaseSync.WithoutRequest.WithoutResult
+{
+ private readonly VaultService _vaultService;
+
+ public RefreshConfigurationRoute(VaultService vaultService) {
+ _vaultService = vaultService;
+ }
+
+ [HttpGet("~/_/refresh-configuration")]
+ public override void Handle() {
+ _vaultService.RefreshCurrentAppConfiguration();
+ }
+}
diff --git a/server/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs b/server/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs
index 3e19626..352ad18 100644
--- a/server/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs
+++ b/server/src/Endpoints/V1/ApiTokens/CreateTokenRoute.cs
@@ -9,9 +9,9 @@ public class CreateTokenRoute : RouteBaseSync.WithRequest<ApiAccessToken.ApiAcce
private readonly AppConfiguration _configuration;
private readonly ILogger<CreateTokenRoute> _logger;
- public CreateTokenRoute(AppDbContext context, IOptions<AppConfiguration> configuration, ILogger<CreateTokenRoute> logger) {
+ public CreateTokenRoute(AppDbContext context, VaultService vaultService, ILogger<CreateTokenRoute> logger) {
_context = context;
- _configuration = configuration.Value;
+ _configuration = vaultService.GetCurrentAppConfiguration();
_logger = logger;
}