mirror of
https://github.com/C9Glax/tranga.git
synced 2025-04-14 04:13:18 +02:00
Endpoint to change all information of locallibrary
This commit is contained in:
parent
cef3b24efd
commit
93ad691971
@ -1,3 +1,13 @@
|
|||||||
namespace API.APIEndpointRecords;
|
namespace API.APIEndpointRecords;
|
||||||
|
|
||||||
public record NewLibraryRecord(string path, string name);
|
public record NewLibraryRecord(string path, string name)
|
||||||
|
{
|
||||||
|
public bool Validate()
|
||||||
|
{
|
||||||
|
if (path.Length < 1) //TODO Better Path validation
|
||||||
|
return false;
|
||||||
|
if (name.Length < 1)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -29,6 +29,33 @@ public class LocalLibrariesController(PgsqlContext context) : Controller
|
|||||||
return Ok(library);
|
return Ok(library);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPatch("{LibraryId}")]
|
||||||
|
[ProducesResponseType(Status200OK)]
|
||||||
|
[ProducesResponseType(Status404NotFound)]
|
||||||
|
[ProducesResponseType(Status400BadRequest)]
|
||||||
|
[ProducesResponseType<string>(Status500InternalServerError, "text/plain")]
|
||||||
|
public IActionResult UpdateLocalLibrary(string LibraryId, [FromBody]NewLibraryRecord record)
|
||||||
|
{
|
||||||
|
LocalLibrary? library = context.LocalLibraries.Find(LibraryId);
|
||||||
|
if (library is null)
|
||||||
|
return NotFound();
|
||||||
|
if (record.Validate() == false)
|
||||||
|
return BadRequest();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
library.LibraryName = record.name;
|
||||||
|
library.BasePath = record.path;
|
||||||
|
context.SaveChanges();
|
||||||
|
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return StatusCode(500, e.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[HttpPatch("{LibraryId}/ChangeBasePath")]
|
[HttpPatch("{LibraryId}/ChangeBasePath")]
|
||||||
[ProducesResponseType(Status200OK)]
|
[ProducesResponseType(Status200OK)]
|
||||||
[ProducesResponseType(Status404NotFound)]
|
[ProducesResponseType(Status404NotFound)]
|
||||||
@ -85,9 +112,12 @@ public class LocalLibrariesController(PgsqlContext context) : Controller
|
|||||||
|
|
||||||
[HttpPut]
|
[HttpPut]
|
||||||
[ProducesResponseType<LocalLibrary>(Status200OK, "application/json")]
|
[ProducesResponseType<LocalLibrary>(Status200OK, "application/json")]
|
||||||
|
[ProducesResponseType(Status400BadRequest)]
|
||||||
[ProducesResponseType<string>(Status500InternalServerError, "text/plain")]
|
[ProducesResponseType<string>(Status500InternalServerError, "text/plain")]
|
||||||
public IActionResult CreateNewLibrary([FromBody] NewLibraryRecord library)
|
public IActionResult CreateNewLibrary([FromBody]NewLibraryRecord library)
|
||||||
{
|
{
|
||||||
|
if (library.Validate() == false)
|
||||||
|
return BadRequest();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LocalLibrary newLibrary = new (library.path, library.name);
|
LocalLibrary newLibrary = new (library.path, library.name);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user