diff options
Diffstat (limited to '')
-rw-r--r-- | Api/Controllers/ContentApi.cs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Api/Controllers/ContentApi.cs b/Api/Controllers/ContentApi.cs new file mode 100644 index 0000000..757fd78 --- /dev/null +++ b/Api/Controllers/ContentApi.cs @@ -0,0 +1,37 @@ +using Microsoft.AspNetCore.Mvc; +using WikiWaka.Api.Contract; +using WikiWaka.Api.Models; + +namespace WikiWaka.Api.Controllers; + +[ApiController] +[Route("[controller]")] +public class ContentApiController(DbWikiWakaContext dbContext) : Controller +{ + [HttpGet(nameof(Content))] + public IAsyncEnumerable<Content> GetContents() + { + return dbContext.Content.AsAsyncEnumerable(); + } + + [HttpPost(nameof(Content))] + public async Task<Content> PostContents(NewContent newContent) + { + Language language = dbContext.Language.Single(l => l.LanguageCode == newContent.LanguageCode); + Content content = new(); + Models.Version version = new(); + Property property = new() + { + Content = content, + Language = language, + Version = version, + Text = newContent.Text, + }; + await dbContext.Content.AddAsync(content); + await dbContext.Version.AddAsync(version); + await dbContext.Property.AddAsync(property); + await dbContext.SaveChangesAsync(); + + return content; + } +} |