From 88f9157ff80386801efb07264351de1929deb8d3 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Mon, 2 Jun 2025 11:56:10 +0800 Subject: [PATCH] :bug: Bug fixes and fixes --- DysonNetwork.Sphere/Chat/ChatController.cs | 1 - DysonNetwork.Sphere/Publisher/Publisher.cs | 4 +- .../Publisher/PublisherController.cs | 37 +++++++++++-------- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/DysonNetwork.Sphere/Chat/ChatController.cs b/DysonNetwork.Sphere/Chat/ChatController.cs index 31ef5d1..caa145a 100644 --- a/DysonNetwork.Sphere/Chat/ChatController.cs +++ b/DysonNetwork.Sphere/Chat/ChatController.cs @@ -223,7 +223,6 @@ public partial class ChatController(AppDatabase db, ChatService cs, ChatRoomServ .Include(m => m.Sender) .Include(m => m.Sender.Account) .Include(m => m.Sender.Account.Profile) - .Include(message => message.Attachments) .Include(message => message.ChatRoom) .FirstOrDefaultAsync(m => m.Id == messageId && m.ChatRoomId == roomId); diff --git a/DysonNetwork.Sphere/Publisher/Publisher.cs b/DysonNetwork.Sphere/Publisher/Publisher.cs index ecb6d33..cce05e0 100644 --- a/DysonNetwork.Sphere/Publisher/Publisher.cs +++ b/DysonNetwork.Sphere/Publisher/Publisher.cs @@ -15,7 +15,7 @@ public enum PublisherType } [Index(nameof(Name), IsUnique = true)] -public class Publisher : ModelBase +public class Publisher : ModelBase, IIdentifiedResource { public Guid Id { get; set; } public PublisherType Type { get; set; } @@ -41,6 +41,8 @@ public class Publisher : ModelBase public Account.Account? Account { get; set; } public Guid? RealmId { get; set; } [JsonIgnore] public Realm.Realm? Realm { get; set; } + + public string ResourceIdentifier => $"publisher/{Id}"; } public enum PublisherMemberRole diff --git a/DysonNetwork.Sphere/Publisher/PublisherController.cs b/DysonNetwork.Sphere/Publisher/PublisherController.cs index affa066..d03e9c4 100644 --- a/DysonNetwork.Sphere/Publisher/PublisherController.cs +++ b/DysonNetwork.Sphere/Publisher/PublisherController.cs @@ -13,7 +13,12 @@ namespace DysonNetwork.Sphere.Publisher; [ApiController] [Route("/publishers")] - public class PublisherController(AppDatabase db, PublisherService ps, FileService fs, FileReferenceService fileRefService, ActionLogService als) +public class PublisherController( + AppDatabase db, + PublisherService ps, + FileService fs, + FileReferenceService fileRefService, + ActionLogService als) : ControllerBase { [HttpGet("{name}")] @@ -24,7 +29,7 @@ namespace DysonNetwork.Sphere.Publisher; .FirstOrDefaultAsync(); if (publisher is null) return NotFound(); if (publisher.AccountId is null) return Ok(publisher); - + var account = await db.Accounts .Where(a => a.Id == publisher.AccountId) .Include(a => a.Profile) @@ -349,24 +354,24 @@ namespace DysonNetwork.Sphere.Publisher; var picture = await db.Files.Where(f => f.Id == request.PictureId).FirstOrDefaultAsync(); if (picture is null) return BadRequest("Invalid picture id."); - var publisherResourceId = $"publisher:{publisher.Id}"; - // Remove old references for the publisher picture - if (publisher.Picture is not null) { - var oldPictureRefs = await fileRefService.GetResourceReferencesAsync(publisherResourceId, "publisher.picture"); + if (publisher.Picture is not null) + { + var oldPictureRefs = await fileRefService.GetResourceReferencesAsync( + publisher.ResourceIdentifier, + "publisher.picture" + ); foreach (var oldRef in oldPictureRefs) - { await fileRefService.DeleteReferenceAsync(oldRef.Id); - } } publisher.Picture = picture.ToReferenceObject(); // Create a new reference await fileRefService.CreateReferenceAsync( - picture.Id, - "publisher.picture", - publisherResourceId + picture.Id, + "publisher.picture", + publisher.ResourceIdentifier ); } @@ -378,8 +383,10 @@ namespace DysonNetwork.Sphere.Publisher; var publisherResourceId = $"publisher:{publisher.Id}"; // Remove old references for the publisher background - if (publisher.Background is not null) { - var oldBackgroundRefs = await fileRefService.GetResourceReferencesAsync(publisherResourceId, "publisher.background"); + if (publisher.Background is not null) + { + var oldBackgroundRefs = + await fileRefService.GetResourceReferencesAsync(publisherResourceId, "publisher.background"); foreach (var oldRef in oldBackgroundRefs) { await fileRefService.DeleteReferenceAsync(oldRef.Id); @@ -390,8 +397,8 @@ namespace DysonNetwork.Sphere.Publisher; // Create a new reference await fileRefService.CreateReferenceAsync( - background.Id, - "publisher.background", + background.Id, + "publisher.background", publisherResourceId ); }