using NetinaShop.Domain.Enums; namespace NetinaShop.Api.Controller; public class FileController : ICarterModule { public void AddRoutes(IEndpointRouteBuilder app) { var group = app.NewVersionedApi("File") .MapGroup("api/file") .RequireAuthorization(builder => builder.AddAuthenticationSchemes("Bearer").RequireAuthenticatedUser()); group.MapGet("", GetFilesAsync) .WithDisplayName("GetFilesAsync") .HasApiVersion(1.0); group.MapPost("", UploadFileAsync) .WithDisplayName("UploadFileAsync") .HasApiVersion(1.0); } public async Task GetFilesAsync([FromQuery]StorageFileType? fileType,[FromServices] IStorageService storageService, CancellationToken cancellationToken) => TypedResults.Ok(await storageService.GetStorageFiles(fileType: fileType ?? StorageFileType.Image)); public async Task UploadFileAsync([FromBody] FileUploadRequest uploadRequest, [FromServices] IUploadFileService uploadFileService, CancellationToken cancellationToken) { return TypedResults.Ok(await uploadFileService.UploadImageAsync(uploadRequest)); } }