summary refs log tree commit diff
path: root/extra/admin-api/Spacebar.UApi/Controllers/GuildStickerController.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-02-26 08:59:44 +0100
committerRory& <root@rory.gay>2026-02-26 08:59:44 +0100
commit70034a410d683fb47f32714a8a3388e637d7e2e0 (patch)
treeb0a98f81692551f34eae51d4bbc3a8ec7813a0ab /extra/admin-api/Spacebar.UApi/Controllers/GuildStickerController.cs
parentUApi/models: permissions? (diff)
downloadserver-ts-70034a410d683fb47f32714a8a3388e637d7e2e0.tar.xz
UApi: partial work on filling in wrappers for non-json endpoints
Diffstat (limited to 'extra/admin-api/Spacebar.UApi/Controllers/GuildStickerController.cs')
-rw-r--r--extra/admin-api/Spacebar.UApi/Controllers/GuildStickerController.cs40
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