summaryrefslogtreecommitdiff
path: root/Controllers
diff options
context:
space:
mode:
Diffstat (limited to 'Controllers')
-rw-r--r--Controllers/MediaController.cs17
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);
}