diff --git a/API/Controllers/MangaController.cs b/API/Controllers/MangaController.cs index dc67405..33c8074 100644 --- a/API/Controllers/MangaController.cs +++ b/API/Controllers/MangaController.cs @@ -1,5 +1,6 @@ using API.APIEndpointRecords; using API.Schema; +using API.Schema.Jobs; using Asp.Versioning; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.ModelBinding; @@ -228,10 +229,28 @@ public class MangaController(PgsqlContext context) : Controller /// /// Manga-ID /// New Directory-Path - /// NOT IMPLEMENTED + /// Folder is going to be moved + /// Error during Database Operation [HttpPost("{MangaId}/MoveFolder")] + [ProducesResponseType(Status202Accepted)] + [ProducesResponseType(Status500InternalServerError, "text/plain")] public IActionResult MoveFolder(string MangaId, [FromBody]string folder) { - throw new NotImplementedException(); + Manga? manga = context.Manga.Find(MangaId); + if (manga is null) + return NotFound(); + MoveFileOrFolderJob dep = manga.UpdateFolderName(TrangaSettings.downloadLocation, folder); + UpdateFilesDownloadedJob up = new UpdateFilesDownloadedJob(0, manga.MangaId, null, [dep.JobId]); + + try + { + context.Jobs.AddRange([dep, up]); + context.SaveChanges(); + return Accepted(); + } + catch (Exception e) + { + return StatusCode(500, e.Message); + } } } \ No newline at end of file