Guid and long route constraints, id/trackId parameter names, Update*Request without the New prefix, sentence-case operation summaries, shared security scheme id and a single Limits class.
30 lines
953 B
C#
30 lines
953 B
C#
using Mediator;
|
|
using Musify.Application.Configuration;
|
|
using Musify.Application.Configuration.Responses;
|
|
|
|
namespace Musify.Api.Endpoints;
|
|
|
|
public static class ConfigEndpoints
|
|
{
|
|
public static IEndpointRouteBuilder MapConfigEndpoints(this IEndpointRouteBuilder app)
|
|
{
|
|
var group = app.MapGroup("/config")
|
|
.WithTags("Config");
|
|
|
|
group.MapGet("/playback", GetPlaybackPublicConfig)
|
|
.WithName("GetPlaybackPublicConfig")
|
|
.WithSummary("Get the public playback configuration (whether anonymous listening is allowed). Works anonymously")
|
|
.Produces<PlaybackPublicConfigResponse>();
|
|
|
|
return app;
|
|
}
|
|
|
|
private static async Task<IResult> GetPlaybackPublicConfig(
|
|
IMediator mediator,
|
|
CancellationToken cancellationToken)
|
|
{
|
|
var result = await mediator.Send(new GetPlaybackPublicConfigQuery(), cancellationToken);
|
|
return Results.Ok(result);
|
|
}
|
|
}
|