diff options
Diffstat (limited to 'Controllers')
| -rw-r--r-- | Controllers/MediaController.cs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/Controllers/MediaController.cs b/Controllers/MediaController.cs index cd6916f..7eb46c6 100644 --- a/Controllers/MediaController.cs +++ b/Controllers/MediaController.cs @@ -114,6 +114,13 @@ public class MediaController : Controller { .ElementAtOrDefault(0); Enum.TryParse(typeof(PathType), pathTypeString, true, out pathType); + // Parse tag IDs from headers + Guid[]? tagIds = formFile.Headers["X-HyperBooru-Tags"] + .ElementAtOrDefault(0)? + .Split(',') + .Select(t => Guid.Parse(t)) + .ToArray(); + media = mediaService.Create( formFile.OpenReadStream(), formFile.FileName, @@ -123,7 +130,15 @@ public class MediaController : Controller { lastWriteTime, createTime, path, - (PathType?) pathType); + (PathType?) pathType, + tagIds); + + // Return the GUID of the new media object if requested + bool returnMetadataParsed = bool.TryParse( + formFile.Headers["X-HyperBooru-ReturnMediaId"], out var returnMetadata); + + if(returnMetadataParsed && returnMetadata) + return Content(media.Guid.ToString()); } catch(MediaCreateException e) { return BadRequest(e.Message); } |
