From 4085d6398ca678f3efbe3de1c5fa8b982f236d65 Mon Sep 17 00:00:00 2001 From: pancakes Date: Sat, 29 Mar 2025 15:02:14 +1000 Subject: [PATCH] [backend/api] Add BannerUrl to InstanceResponse --- .../Controllers/Web/InstanceController.cs | 11 +++++++++-- Iceshrimp.Shared/Schemas/Web/InstanceResponse.cs | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Iceshrimp.Backend/Controllers/Web/InstanceController.cs b/Iceshrimp.Backend/Controllers/Web/InstanceController.cs index fcc4f186..77e3a947 100644 --- a/Iceshrimp.Backend/Controllers/Web/InstanceController.cs +++ b/Iceshrimp.Backend/Controllers/Web/InstanceController.cs @@ -34,8 +34,14 @@ public class InstanceController( { var limits = new Limitations { NoteLength = instanceConfig.Value.CharacterLimit }; - var iconId = await meta.GetAsync(MetaEntity.IconFileId); - var iconUrl = await db.DriveFiles.Where(p => p.Id == iconId).Select(p => p.PublicUrl).FirstOrDefaultAsync(); + var (iconId, bannerId) = await meta.GetManyAsync(MetaEntity.IconFileId, MetaEntity.BannerFileId); + + var iconUrl = await db.DriveFiles.Where(p => p.Id == iconId) + .Select(p => p.PublicUrl ?? p.RawAccessUrl) + .FirstOrDefaultAsync(); + var bannerUrl = await db.DriveFiles.Where(p => p.Id == bannerId) + .Select(p => p.PublicUrl ?? p.RawAccessUrl) + .FirstOrDefaultAsync(); return new InstanceResponse { @@ -44,6 +50,7 @@ public class InstanceController( Registration = (Registrations)securityConfig.Value.Registrations, Name = await meta.GetAsync(MetaEntity.InstanceName), IconUrl = iconUrl, + BannerUrl = bannerUrl, Limits = limits }; } diff --git a/Iceshrimp.Shared/Schemas/Web/InstanceResponse.cs b/Iceshrimp.Shared/Schemas/Web/InstanceResponse.cs index c280b311..1aa75ce2 100644 --- a/Iceshrimp.Shared/Schemas/Web/InstanceResponse.cs +++ b/Iceshrimp.Shared/Schemas/Web/InstanceResponse.cs @@ -7,6 +7,7 @@ public class InstanceResponse public required Registrations Registration { get; set; } public required string? Name { get; set; } public required string? IconUrl { get; set; } + public required string? BannerUrl { get; set; } public required Limitations Limits { get; set; } }