diff --git a/Iceshrimp.Backend/Controllers/Mastodon/Schemas/StatusSchemas.cs b/Iceshrimp.Backend/Controllers/Mastodon/Schemas/StatusSchemas.cs index 18850913..7bbdc86e 100644 --- a/Iceshrimp.Backend/Controllers/Mastodon/Schemas/StatusSchemas.cs +++ b/Iceshrimp.Backend/Controllers/Mastodon/Schemas/StatusSchemas.cs @@ -94,4 +94,9 @@ public abstract class StatusSchemas { [JR] [J("id")] [B(Name = "id")] public required string Id { get; set; } } + + public class ReblogRequest + { + [B(Name = "visibility")] [J("visibility")] public string? Visibility { get; set; } + } } \ No newline at end of file diff --git a/Iceshrimp.Backend/Controllers/Mastodon/StatusController.cs b/Iceshrimp.Backend/Controllers/Mastodon/StatusController.cs index 1bf779a9..9de9f2ff 100644 --- a/Iceshrimp.Backend/Controllers/Mastodon/StatusController.cs +++ b/Iceshrimp.Backend/Controllers/Mastodon/StatusController.cs @@ -259,7 +259,7 @@ public class StatusController( [Authorize("write:favourites")] [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(StatusEntity))] [ProducesResponseType(StatusCodes.Status404NotFound, Type = typeof(MastodonErrorResponse))] - public async Task Renote(string id, [FromHybrid] string? visibility) + public async Task Renote(string id, [FromHybrid] StatusSchemas.ReblogRequest? request) { var user = HttpContext.GetUserOrFail(); if (!await db.Notes.AnyAsync(p => p.RenoteId == id && p.User == user && p.IsPureRenote)) @@ -271,8 +271,8 @@ public class StatusController( .FirstOrDefaultAsync() ?? throw GracefulException.RecordNotFound(); - var renoteVisibility = visibility != null - ? StatusEntity.DecodeVisibility(visibility) + var renoteVisibility = request?.Visibility != null + ? StatusEntity.DecodeVisibility(request.Visibility) : Note.NoteVisibility.Followers; if (renoteVisibility == Note.NoteVisibility.Specified)