using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Spacebar.AdminApi.Extensions; using Spacebar.AdminApi.Models; using Spacebar.AdminApi.Services; using Spacebar.Db.Contexts; using Spacebar.Db.Models; using Spacebar.RabbitMqUtilities; namespace Spacebar.AdminApi.Controllers.Media; [ApiController] [Route("/media/sticker")] public class StickerController(ILogger logger, SpacebarDbContext db, RabbitMQService mq, AuthenticationService auth, IServiceProvider sp) : ControllerBase { [HttpGet("")] public async IAsyncEnumerable GetStickers() { (await auth.GetCurrentUser(Request)).GetRights().AssertHasAllRights(SpacebarRights.Rights.OPERATOR); // var db2 = sp.CreateScope().ServiceProvider.GetService(); var stickers = db.Stickers .AsNoTracking() .IgnoreAutoIncludes() .AsAsyncEnumerable(); await foreach (var sticker in stickers) { yield return new() { Id = sticker.Id, Name = sticker.Name, Description = sticker.Description, Available = sticker.Available, Tags = sticker.Tags, PackId = sticker.PackId, GuildId = sticker.GuildId, UserId = sticker.UserId, Type = sticker.Type, FormatType = sticker.FormatType, }; } } }