summaryrefslogtreecommitdiff
path: root/TagController.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-08-14 00:29:38 +1000
committerJake Mannens <jake@asger.xyz>2025-08-18 10:59:32 +1000
commit07a4c7ead01514bd3f304f00abc38140a1d73634 (patch)
tree6606addd04356c1b39e316ae3c7deb39bea28442 /TagController.cs
parentb8833351cbbd6505d86e3fb8a791344fa1fbc94c (diff)
Added functionality for ingest tagging and implicit tags
Diffstat (limited to 'TagController.cs')
-rw-r--r--TagController.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/TagController.cs b/TagController.cs
index 5c9fa39..6972da2 100644
--- a/TagController.cs
+++ b/TagController.cs
@@ -54,6 +54,46 @@ public class TagController : Controller {
return Ok();
}
+ [HttpPost("{tagId}/implicit/{implicitTagId}")]
+ public IActionResult AddImplicitTag(
+ [FromRoute] Guid tagId,
+ [FromRoute] Guid implicitTagId) {
+
+ var tagDef = db.TagDefinitions.First(td => td.Guid == tagId);
+ var implicitTagDef = db.TagDefinitions.First(td => td.Guid == implicitTagId);
+
+ if(tagDef is null || implicitTagDef is null)
+ return NotFound();
+
+ if(tagDef.ImplicitTags.Select(td => td.Guid).Contains(implicitTagId))
+ return BadRequest();
+
+ tagDef.ImplicitTags.Add(implicitTagDef);
+ db.SaveChanges();
+
+ return Ok();
+ }
+
+ [HttpDelete("{tagId}/implicit/{implicitTagId}")]
+ public IActionResult RemoveImplicitTag(
+ [FromRoute] Guid tagId,
+ [FromRoute] Guid implicitTagId) {
+
+ var tagDef = db.TagDefinitions.First(td => td.Guid == tagId);
+ var implicitTagDef = db.TagDefinitions.First(td => td.Guid == implicitTagId);
+
+ if(tagDef is null || implicitTagDef is null)
+ return NotFound();
+
+ if(!tagDef.ImplicitTags.Select(td => td.Guid).Contains(implicitTagId))
+ return BadRequest();
+
+ tagDef.ImplicitTags.Remove(implicitTagDef);
+ db.SaveChanges();
+
+ return Ok();
+ }
+
[HttpPost("def")]
public void CreateTagDefinition(
[FromForm] string name,