1 files changed, 40 insertions, 0 deletions
diff --git a/extra/admin-api/Spacebar.UApi/Controllers/GuildStickerController.cs b/extra/admin-api/Spacebar.UApi/Controllers/GuildStickerController.cs
new file mode 100644
index 00000000..abc8e9de
--- /dev/null
+++ b/extra/admin-api/Spacebar.UApi/Controllers/GuildStickerController.cs
@@ -0,0 +1,40 @@
+using Microsoft.AspNetCore.Mvc;
+using Spacebar.Interop.Authentication.AspNetCore;
+using Spacebar.Models.Db.Contexts;
+using Spacebar.Models.Db.Models;
+using Spacebar.UApi.Controllers.Messages;
+using Spacebar.UApi.Services;
+
+namespace Spacebar.UApi.Controllers;
+
+[ApiController]
+[Route("/api/v{_}/guilds/{guildId}/stickers/")]
+public class GuildStickerController(ILogger<MessagesController> logger, SpacebarDbContext db, SpacebarAspNetAuthenticationService authService, UApiConfiguration cfg, PermissionService permService) : ControllerBase {
+ // TODO proper response type
+ [HttpPost]
+ public async Task<Sticker> UploadGuildSticker(string guildId, MultipartFormDataContent content) {
+
+ var sticker = new Sticker() {
+ GuildId = guildId
+ };
+
+ foreach (var item in content) {
+ switch (item.Headers.ContentDisposition.Name.Trim('"')) {
+ case "name":
+ sticker.Name = await item.ReadAsStringAsync();
+ break;
+ case "description":
+ sticker.Description = await item.ReadAsStringAsync();
+ break;
+ case "tags":
+ sticker.Tags = await item.ReadAsStringAsync();
+ break;
+ case "file":
+ var fileContent = await item.ReadAsStreamAsync();
+ break;
+ }
+ }
+
+ return sticker;
+ }
+}
\ No newline at end of file
|