From 5f604b3052dab1d51dc130df2470bf330b283ec6 Mon Sep 17 00:00:00 2001 From: ivar Date: Tue, 19 Mar 2024 01:02:22 +0100 Subject: Max lenghts on db schema Use latest temporal from cdn Implement majority of translation functionality Major refinements/bugs --- code/api/Endpoints/Storage/UploadEndpoint.cs | 112 +++++++++++++-------------- 1 file changed, 54 insertions(+), 58 deletions(-) (limited to 'code/api/Endpoints/Storage/UploadEndpoint.cs') diff --git a/code/api/Endpoints/Storage/UploadEndpoint.cs b/code/api/Endpoints/Storage/UploadEndpoint.cs index e3feffb..fa828ae 100644 --- a/code/api/Endpoints/Storage/UploadEndpoint.cs +++ b/code/api/Endpoints/Storage/UploadEndpoint.cs @@ -1,61 +1,57 @@ -using File = I2R.Storage.Api.Database.Models.File; +using Quality.Storage.Api.Services.Abstractions; +using File = Quality.Storage.Api.Database.Models.File; -namespace I2R.Storage.Api.Endpoints.Storage; +namespace Quality.Storage.Api.Endpoints.Storage; -public class UploadEndpoint : EndpointBase +public class UploadEndpoint( + IResourceService resourceService, + IStringLocalizer localizer, + AppDatabase database, + StorageService storageService +) : EndpointBase { - private readonly DefaultResourceService _resourceService; - private readonly IStringLocalizer _localizer; - private readonly AppDatabase _database; - private readonly StorageService _storageService; - - public UploadEndpoint(DefaultResourceService resourceService, IStringLocalizer localizer, AppDatabase database, StorageService storageService) { - _resourceService = resourceService; - _localizer = localizer; - _database = database; - _storageService = storageService; - } - - public class Request - { - public IFormFileCollection FormFileCollection { get; set; } - public Guid FolderId { get; set; } - } - - [HttpPost("~/storage/upload")] - public async Task Handle(Request request) { - var folder = await _storageService.GetFileSystemEntryAsync(request.FolderId); - if (folder == default) { - return NotFound(); - } - - var problem = new KnownProblemModel(); - foreach (var formFile in request.FormFileCollection) { - if (!formFile.FileName.IsValidFileName()) { - problem.AddError("file_" + formFile.Name, _localizer["{fileName} is an invalid file name"]); - continue; - } - - if (problem.Errors.Any()) { - return KnownProblem(problem); - } - - var file = new File(LoggedInUser.Id) { - Name = formFile.FileName, - FolderId = folder.Id, - MimeType = formFile.ContentType, - SizeInBytes = formFile.Length, - OwningUserId = LoggedInUser.Id - }; - var id = new StorageBlobId() { - Id = file.Id, - Bucket = LoggedInUser.Id - }; - await _resourceService.SetBlobAsync(id, formFile.OpenReadStream()); - await _database.Files.AddAsync(file); - await _database.SaveChangesAsync(); - } - - return Ok(await _storageService.GetFileSystemEntryAsync(folder.Id)); - } -} \ No newline at end of file + public new class Request + { + public IFormFileCollection FormFileCollection { get; set; } + public Guid FolderId { get; set; } + } + + [HttpPost("~/storage/upload")] + public async Task Handle(Request request) { + var folder = await storageService.GetFileSystemEntryAsync(request.FolderId); + if (folder == default) { + return NotFound(); + } + + var problem = new KnownProblemModel(); + foreach (var formFile in request.FormFileCollection) { + if (!formFile.FileName.IsValidFileName()) { + problem.AddError("file_" + formFile.Name, localizer["{fileName} is an invalid file name"]); + continue; + } + + if (problem.Errors.Count != 0) { + return KnownProblem(problem); + } + + var file = new File(LoggedInUser.Id) { + Name = formFile.FileName, + FolderId = folder.Id, + MimeType = formFile.ContentType, + SizeInBytes = formFile.Length, + OwningUserId = LoggedInUser.Id + }; + + var id = new StorageBlobId { + Id = file.Id, + Bucket = LoggedInUser.Id + }; + + await resourceService.SetBlobAsync(id, formFile.OpenReadStream()); + await database.Files.AddAsync(file); + await database.SaveChangesAsync(); + } + + return Ok(await storageService.GetFileSystemEntryAsync(folder.Id)); + } +} -- cgit v1.3