summaryrefslogtreecommitdiff
path: root/TagController.cs
diff options
context:
space:
mode:
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,