diff --git a/extra/admin-api/Spacebar.Cdn/Extensions/ImageController.cs b/extra/admin-api/Spacebar.Cdn/Extensions/ImageController.cs
index 133eb8e1..f8178540 100644
--- a/extra/admin-api/Spacebar.Cdn/Extensions/ImageController.cs
+++ b/extra/admin-api/Spacebar.Cdn/Extensions/ImageController.cs
@@ -3,28 +3,33 @@ using Spacebar.AdminApi.TestClient.Services.Services;
namespace Spacebar.Cdn.Extensions;
-public class ImageController : ControllerBase {
- protected DiscordImageResizeParams GetResizeParams() {
- return new() {
- Size = Request.Query.ContainsKey("size") && uint.TryParse(Request.Query["size"], out uint size) ? size : null,
- Quality = Request.Query.ContainsKey("quality") && Enum.TryParse<DiscordImageResizeQuality>(Request.Query["quality"], true, out var quality)
- ? quality
- : DiscordImageResizeQuality.High,
- KeepAspectRatio = !Request.Query.ContainsKey("keepAspectRatio") || !bool.TryParse(Request.Query["keepAspectRatio"], out bool kar) || kar,
- Passthrough = Request.Query.ContainsKey("passthrough") && bool.TryParse(Request.Query["passthrough"], out bool pt) && pt,
- Animated = Request.Query.ContainsKey("animated") && bool.TryParse(Request.Query["animated"], out bool an) && an,
- SpacebarAllowUpscale = Request.Query.ContainsKey("allowUpscale") && bool.TryParse(Request.Query["allowUpscale"], out bool au) && au,
- SpacebarOptimiseGif = Request.Query.ContainsKey("optimiseGif") && bool.TryParse(Request.Query["optimiseGif"], out bool og) && og,
- };
- }
- protected void SetSuccessCacheHeader() {
- int cacheDuration = (int)TimeSpan.FromHours(6).TotalSeconds;
- Response.Headers.CacheControl = $"public, max-age={cacheDuration}, s-maxage={cacheDuration}, immutable";
+public static class HttpRequestExtensions {
+ extension(HttpRequest request) {
+ public DiscordImageResizeParams GetResizeParams() {
+ return new() {
+ Size = request.Query.ContainsKey("size") && uint.TryParse(request.Query["size"], out uint size) ? size : null,
+ Quality = request.Query.ContainsKey("quality") && Enum.TryParse<DiscordImageResizeQuality>(request.Query["quality"], true, out var quality)
+ ? quality
+ : DiscordImageResizeQuality.High,
+ KeepAspectRatio = !request.Query.ContainsKey("keepAspectRatio") || !bool.TryParse(request.Query["keepAspectRatio"], out bool kar) || kar,
+ Passthrough = request.Query.ContainsKey("passthrough") && bool.TryParse(request.Query["passthrough"], out bool pt) && pt,
+ Animated = request.Query.ContainsKey("animated") && bool.TryParse(request.Query["animated"], out bool an) && an,
+ SpacebarAllowUpscale = request.Query.ContainsKey("allowUpscale") && bool.TryParse(request.Query["allowUpscale"], out bool au) && au,
+ SpacebarOptimiseGif = request.Query.ContainsKey("optimiseGif") && bool.TryParse(request.Query["optimiseGif"], out bool og) && og,
+ };
+ }
}
+
+ extension (HttpResponse response) {
+ public void SetSuccessCacheHeader() {
+ int cacheDuration = (int)TimeSpan.FromHours(6).TotalSeconds;
+ response.Headers.CacheControl = $"public, max-age={cacheDuration}, s-maxage={cacheDuration}, immutable";
+ }
- protected void SetFailureCacheHeader() {
- int cacheDuration = (int)TimeSpan.FromMinutes(5).TotalSeconds;
- Response.Headers.CacheControl = $"public, max-age={cacheDuration}, s-maxage={cacheDuration}, immutable";
+ public void SetFailureCacheHeader() {
+ int cacheDuration = (int)TimeSpan.FromMinutes(5).TotalSeconds;
+ response.Headers.CacheControl = $"public, max-age={cacheDuration}, s-maxage={cacheDuration}, immutable";
+ }
}
}
\ No newline at end of file
|