🗑️ Remove the unused reference system
This commit is contained in:
@@ -15,8 +15,7 @@ public class StickerController(
|
||||
AppDatabase db,
|
||||
StickerService st,
|
||||
Publisher.PublisherService ps,
|
||||
FileService.FileServiceClient files,
|
||||
FileReferenceService.FileReferenceServiceClient fileRefs
|
||||
FileService.FileServiceClient files
|
||||
) : ControllerBase
|
||||
{
|
||||
private async Task<IActionResult> _CheckStickerPackPermissions(
|
||||
@@ -161,16 +160,6 @@ public class StickerController(
|
||||
db.StickerPacks.Add(pack);
|
||||
await db.SaveChangesAsync();
|
||||
|
||||
if (pack.Icon is not null)
|
||||
{
|
||||
await fileRefs.CreateReferenceAsync(new CreateReferenceRequest
|
||||
{
|
||||
FileId = pack.Icon.Id,
|
||||
Usage = StickerService.StickerPackUsageIdentifier,
|
||||
ResourceId = pack.ResourceIdentifier
|
||||
});
|
||||
}
|
||||
|
||||
return Ok(pack);
|
||||
}
|
||||
|
||||
@@ -207,24 +196,7 @@ public class StickerController(
|
||||
if (file is null)
|
||||
return BadRequest("Icon not found.");
|
||||
|
||||
if (file.Id != pack.Icon?.Id)
|
||||
{
|
||||
await fileRefs.DeleteResourceReferencesAsync(new DeleteResourceReferencesRequest
|
||||
{ ResourceId = pack.ResourceIdentifier, Usage = StickerService.StickerPackUsageIdentifier });
|
||||
|
||||
pack.Icon = SnCloudFileReferenceObject.FromProtoValue(file);
|
||||
await fileRefs.CreateReferenceAsync(new CreateReferenceRequest
|
||||
{
|
||||
FileId = pack.Icon.Id,
|
||||
Usage = StickerService.StickerPackUsageIdentifier,
|
||||
ResourceId = pack.ResourceIdentifier
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
// Still update the column in case user want to sync the changes of the file meta
|
||||
pack.Icon = SnCloudFileReferenceObject.FromProtoValue(file);
|
||||
}
|
||||
pack.Icon = SnCloudFileReferenceObject.FromProtoValue(file);
|
||||
}
|
||||
|
||||
db.StickerPacks.Update(pack);
|
||||
|
||||
@@ -7,13 +7,9 @@ namespace DysonNetwork.Sphere.Sticker;
|
||||
|
||||
public class StickerService(
|
||||
AppDatabase db,
|
||||
FileReferenceService.FileReferenceServiceClient fileRefs,
|
||||
ICacheService cache
|
||||
)
|
||||
{
|
||||
public const string StickerFileUsageIdentifier = "sticker";
|
||||
public const string StickerPackUsageIdentifier = "sticker.pack";
|
||||
|
||||
private static readonly TimeSpan CacheDuration = TimeSpan.FromMinutes(15);
|
||||
|
||||
public async Task<SnSticker> CreateStickerAsync(SnSticker sticker)
|
||||
@@ -23,34 +19,14 @@ public class StickerService(
|
||||
db.Stickers.Add(sticker);
|
||||
await db.SaveChangesAsync();
|
||||
|
||||
await fileRefs.CreateReferenceAsync(new CreateReferenceRequest
|
||||
{
|
||||
FileId = sticker.Image.Id,
|
||||
Usage = StickerFileUsageIdentifier,
|
||||
ResourceId = sticker.ResourceIdentifier
|
||||
});
|
||||
|
||||
return sticker;
|
||||
}
|
||||
|
||||
public async Task<SnSticker> UpdateStickerAsync(SnSticker sticker, SnCloudFileReferenceObject? newImage)
|
||||
{
|
||||
if (newImage is not null)
|
||||
{
|
||||
await fileRefs.DeleteResourceReferencesAsync(new DeleteResourceReferencesRequest
|
||||
{ ResourceId = sticker.ResourceIdentifier });
|
||||
|
||||
sticker.Image = newImage;
|
||||
|
||||
// Create new reference
|
||||
await fileRefs.CreateReferenceAsync(new CreateReferenceRequest
|
||||
{
|
||||
FileId = newImage.Id,
|
||||
Usage = StickerFileUsageIdentifier,
|
||||
ResourceId = sticker.ResourceIdentifier
|
||||
});
|
||||
}
|
||||
|
||||
db.Stickers.Update(sticker);
|
||||
await db.SaveChangesAsync();
|
||||
|
||||
@@ -62,12 +38,6 @@ public class StickerService(
|
||||
|
||||
public async Task DeleteStickerAsync(SnSticker sticker)
|
||||
{
|
||||
var stickerResourceId = $"sticker:{sticker.Id}";
|
||||
|
||||
// Delete all file references for this sticker
|
||||
await fileRefs.DeleteResourceReferencesAsync(new DeleteResourceReferencesRequest
|
||||
{ ResourceId = stickerResourceId });
|
||||
|
||||
db.Stickers.Remove(sticker);
|
||||
await db.SaveChangesAsync();
|
||||
|
||||
@@ -81,17 +51,6 @@ public class StickerService(
|
||||
.Where(s => s.PackId == pack.Id)
|
||||
.ToListAsync();
|
||||
|
||||
var images = stickers.Select(s => s.Image).ToList();
|
||||
|
||||
// Delete all file references for each sticker in the pack
|
||||
foreach (var stickerResourceId in stickers.Select(sticker => $"sticker:{sticker.Id}"))
|
||||
await fileRefs.DeleteResourceReferencesAsync(new DeleteResourceReferencesRequest
|
||||
{ ResourceId = stickerResourceId });
|
||||
|
||||
// Delete any references for the pack itself
|
||||
await fileRefs.DeleteResourceReferencesAsync(new DeleteResourceReferencesRequest
|
||||
{ ResourceId = pack.ResourceIdentifier });
|
||||
|
||||
db.Stickers.RemoveRange(stickers);
|
||||
db.StickerPacks.Remove(pack);
|
||||
await db.SaveChangesAsync();
|
||||
|
||||
Reference in New Issue
Block a user