🐛 Bug fixes and fixes

This commit is contained in:
LittleSheep 2025-06-02 11:56:10 +08:00
parent bf5ae17741
commit 88f9157ff8
3 changed files with 25 additions and 17 deletions

View File

@ -223,7 +223,6 @@ public partial class ChatController(AppDatabase db, ChatService cs, ChatRoomServ
.Include(m => m.Sender) .Include(m => m.Sender)
.Include(m => m.Sender.Account) .Include(m => m.Sender.Account)
.Include(m => m.Sender.Account.Profile) .Include(m => m.Sender.Account.Profile)
.Include(message => message.Attachments)
.Include(message => message.ChatRoom) .Include(message => message.ChatRoom)
.FirstOrDefaultAsync(m => m.Id == messageId && m.ChatRoomId == roomId); .FirstOrDefaultAsync(m => m.Id == messageId && m.ChatRoomId == roomId);

View File

@ -15,7 +15,7 @@ public enum PublisherType
} }
[Index(nameof(Name), IsUnique = true)] [Index(nameof(Name), IsUnique = true)]
public class Publisher : ModelBase public class Publisher : ModelBase, IIdentifiedResource
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public PublisherType Type { get; set; } public PublisherType Type { get; set; }
@ -41,6 +41,8 @@ public class Publisher : ModelBase
public Account.Account? Account { get; set; } public Account.Account? Account { get; set; }
public Guid? RealmId { get; set; } public Guid? RealmId { get; set; }
[JsonIgnore] public Realm.Realm? Realm { get; set; } [JsonIgnore] public Realm.Realm? Realm { get; set; }
public string ResourceIdentifier => $"publisher/{Id}";
} }
public enum PublisherMemberRole public enum PublisherMemberRole

View File

@ -13,7 +13,12 @@ namespace DysonNetwork.Sphere.Publisher;
[ApiController] [ApiController]
[Route("/publishers")] [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 : ControllerBase
{ {
[HttpGet("{name}")] [HttpGet("{name}")]
@ -349,16 +354,16 @@ namespace DysonNetwork.Sphere.Publisher;
var picture = await db.Files.Where(f => f.Id == request.PictureId).FirstOrDefaultAsync(); var picture = await db.Files.Where(f => f.Id == request.PictureId).FirstOrDefaultAsync();
if (picture is null) return BadRequest("Invalid picture id."); if (picture is null) return BadRequest("Invalid picture id.");
var publisherResourceId = $"publisher:{publisher.Id}";
// Remove old references for the publisher picture // Remove old references for the publisher picture
if (publisher.Picture is not null) { if (publisher.Picture is not null)
var oldPictureRefs = await fileRefService.GetResourceReferencesAsync(publisherResourceId, "publisher.picture");
foreach (var oldRef in oldPictureRefs)
{ {
var oldPictureRefs = await fileRefService.GetResourceReferencesAsync(
publisher.ResourceIdentifier,
"publisher.picture"
);
foreach (var oldRef in oldPictureRefs)
await fileRefService.DeleteReferenceAsync(oldRef.Id); await fileRefService.DeleteReferenceAsync(oldRef.Id);
} }
}
publisher.Picture = picture.ToReferenceObject(); publisher.Picture = picture.ToReferenceObject();
@ -366,7 +371,7 @@ namespace DysonNetwork.Sphere.Publisher;
await fileRefService.CreateReferenceAsync( await fileRefService.CreateReferenceAsync(
picture.Id, picture.Id,
"publisher.picture", "publisher.picture",
publisherResourceId publisher.ResourceIdentifier
); );
} }
@ -378,8 +383,10 @@ namespace DysonNetwork.Sphere.Publisher;
var publisherResourceId = $"publisher:{publisher.Id}"; var publisherResourceId = $"publisher:{publisher.Id}";
// Remove old references for the publisher background // Remove old references for the publisher background
if (publisher.Background is not null) { if (publisher.Background is not null)
var oldBackgroundRefs = await fileRefService.GetResourceReferencesAsync(publisherResourceId, "publisher.background"); {
var oldBackgroundRefs =
await fileRefService.GetResourceReferencesAsync(publisherResourceId, "publisher.background");
foreach (var oldRef in oldBackgroundRefs) foreach (var oldRef in oldBackgroundRefs)
{ {
await fileRefService.DeleteReferenceAsync(oldRef.Id); await fileRefService.DeleteReferenceAsync(oldRef.Id);