diff options
Diffstat (limited to 'TagController.cs')
| -rw-r--r-- | TagController.cs | 40 |
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, |
