♻️ Finish centerlizing the data models
This commit is contained in:
@@ -208,7 +208,7 @@ public class StickerController(
|
||||
}
|
||||
|
||||
[HttpGet("{packId:guid}/content")]
|
||||
public async Task<ActionResult<List<Sticker>>> ListStickers(Guid packId)
|
||||
public async Task<ActionResult<List<SnSticker>>> ListStickers(Guid packId)
|
||||
{
|
||||
var stickers = await db.Stickers
|
||||
.Where(s => s.Pack.Id == packId)
|
||||
@@ -220,7 +220,7 @@ public class StickerController(
|
||||
}
|
||||
|
||||
[HttpGet("lookup/{identifier}")]
|
||||
public async Task<ActionResult<Sticker>> GetStickerByIdentifier(string identifier)
|
||||
public async Task<ActionResult<SnSticker>> GetStickerByIdentifier(string identifier)
|
||||
{
|
||||
var sticker = await st.LookupStickerByIdentifierAsync(identifier);
|
||||
|
||||
@@ -229,7 +229,7 @@ public class StickerController(
|
||||
}
|
||||
|
||||
[HttpGet("lookup/{identifier}/open")]
|
||||
public async Task<ActionResult<Sticker>> OpenStickerByIdentifier(string identifier)
|
||||
public async Task<ActionResult<SnSticker>> OpenStickerByIdentifier(string identifier)
|
||||
{
|
||||
var sticker = await st.LookupStickerByIdentifierAsync(identifier);
|
||||
|
||||
@@ -238,7 +238,7 @@ public class StickerController(
|
||||
}
|
||||
|
||||
[HttpGet("{packId:guid}/content/{id:guid}")]
|
||||
public async Task<ActionResult<Sticker>> GetSticker(Guid packId, Guid id)
|
||||
public async Task<ActionResult<SnSticker>> GetSticker(Guid packId, Guid id)
|
||||
{
|
||||
var sticker = await db.Stickers
|
||||
.Where(s => s.PackId == packId && s.Id == id)
|
||||
@@ -347,7 +347,7 @@ public class StickerController(
|
||||
if (file is null)
|
||||
return BadRequest("Image not found.");
|
||||
|
||||
var sticker = new Sticker
|
||||
var sticker = new SnSticker
|
||||
{
|
||||
Slug = request.Slug,
|
||||
ImageId = file.Id,
|
||||
|
@@ -7,7 +7,6 @@ namespace DysonNetwork.Sphere.Sticker;
|
||||
|
||||
public class StickerService(
|
||||
AppDatabase db,
|
||||
FileService.FileServiceClient files,
|
||||
FileReferenceService.FileReferenceServiceClient fileRefs,
|
||||
ICacheService cache
|
||||
)
|
||||
@@ -16,7 +15,7 @@ public class StickerService(
|
||||
|
||||
private static readonly TimeSpan CacheDuration = TimeSpan.FromMinutes(15);
|
||||
|
||||
public async Task<Sticker> CreateStickerAsync(Sticker sticker)
|
||||
public async Task<SnSticker> CreateStickerAsync(SnSticker sticker)
|
||||
{
|
||||
if (sticker.Image is null) throw new ArgumentNullException(nameof(sticker.Image));
|
||||
|
||||
@@ -33,7 +32,7 @@ public class StickerService(
|
||||
return sticker;
|
||||
}
|
||||
|
||||
public async Task<Sticker> UpdateStickerAsync(Sticker sticker, SnCloudFileReferenceObject? newImage)
|
||||
public async Task<SnSticker> UpdateStickerAsync(SnSticker sticker, SnCloudFileReferenceObject? newImage)
|
||||
{
|
||||
if (newImage is not null)
|
||||
{
|
||||
@@ -59,7 +58,7 @@ public class StickerService(
|
||||
return sticker;
|
||||
}
|
||||
|
||||
public async Task DeleteStickerAsync(Sticker sticker)
|
||||
public async Task DeleteStickerAsync(SnSticker sticker)
|
||||
{
|
||||
var stickerResourceId = $"sticker:{sticker.Id}";
|
||||
|
||||
@@ -98,17 +97,17 @@ public class StickerService(
|
||||
await PurgeStickerCache(sticker);
|
||||
}
|
||||
|
||||
public async Task<Sticker?> LookupStickerByIdentifierAsync(string identifier)
|
||||
public async Task<SnSticker?> LookupStickerByIdentifierAsync(string identifier)
|
||||
{
|
||||
identifier = identifier.ToLower();
|
||||
// Try to get from the cache first
|
||||
var cacheKey = $"sticker:lookup:{identifier}";
|
||||
var cachedSticker = await cache.GetAsync<Sticker>(cacheKey);
|
||||
var cachedSticker = await cache.GetAsync<SnSticker>(cacheKey);
|
||||
if (cachedSticker is not null)
|
||||
return cachedSticker;
|
||||
|
||||
// If not in cache, fetch from the database
|
||||
IQueryable<Sticker> query = db.Stickers
|
||||
IQueryable<SnSticker> query = db.Stickers
|
||||
.Include(e => e.Pack);
|
||||
query = Guid.TryParse(identifier, out var guid)
|
||||
? query.Where(e => e.Id == guid)
|
||||
@@ -123,7 +122,7 @@ public class StickerService(
|
||||
return sticker;
|
||||
}
|
||||
|
||||
private async Task PurgeStickerCache(Sticker sticker)
|
||||
private async Task PurgeStickerCache(SnSticker sticker)
|
||||
{
|
||||
// Remove both possible cache entries
|
||||
await cache.RemoveAsync($"sticker:lookup:{sticker.Id}");
|
||||
|
Reference in New Issue
Block a user