summaryrefslogtreecommitdiff
path: root/Api/Controllers
diff options
context:
space:
mode:
authorLuca Matei Pintilie <luca@lucamatei.com>2024-10-30 20:59:53 +0000
committerLuca Matei Pintilie <luca@lucamatei.com>2024-10-30 20:59:53 +0000
commitdc1938dbb98dc9edf16558e505b2961246c83e6e (patch)
tree7953186976085ceca6c03a208d1ffd9596f745be /Api/Controllers
parentfc3c7e3b3c955cc274d4668768466fecb8fb727b (diff)
downloadwikiwaka-master.tar
wikiwaka-master.tar.gz
wikiwaka-master.tar.bz2
wikiwaka-master.tar.lz
wikiwaka-master.tar.xz
wikiwaka-master.tar.zst
wikiwaka-master.zip
Add API and TestHEADmaster
Diffstat (limited to '')
-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;
+ }
+}