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