From 28e1cc46958ce34f2cb1c438cca67c9d5efe1484 Mon Sep 17 00:00:00 2001 From: CakeAndBanana Date: Wed, 17 Sep 2025 02:09:23 +0200 Subject: [PATCH] Added changes for the API to support profiles --- LightlessSyncAPI/Data/GroupData.cs | 11 ++++++++++- LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs | 3 ++- LightlessSyncAPI/Dto/Group/GroupPairDto.cs | 1 + LightlessSyncAPI/Dto/Group/GroupProfileDto.cs | 6 ++++++ LightlessSyncAPI/SignalR/ILightlessHub.cs | 1 + 5 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 LightlessSyncAPI/Dto/Group/GroupProfileDto.cs diff --git a/LightlessSyncAPI/Data/GroupData.cs b/LightlessSyncAPI/Data/GroupData.cs index a8ccca2..1aa92b3 100644 --- a/LightlessSyncAPI/Data/GroupData.cs +++ b/LightlessSyncAPI/Data/GroupData.cs @@ -3,8 +3,17 @@ namespace LightlessSync.API.Data; [MessagePackObject(keyAsPropertyName: true)] -public record GroupData(string GID, string? Alias = null) +public record GroupData(string GID, string? Alias = null, DateTime? CreatedAt = null, string? Description = null, string? Tags = null, string? Avatar = null) { [IgnoreMember] public string AliasOrGID => string.IsNullOrWhiteSpace(Alias) ? GID : Alias; + [IgnoreMember] + public DateTime? CreatedAt { get; set; } = CreatedAt; + [IgnoreMember] + public string? Description { get; set; } = Description; + [IgnoreMember] + public string? Tags { get; set; } = Tags; + [IgnoreMember] + public string? Avatar { get; set; } = Avatar; + } \ No newline at end of file diff --git a/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs b/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs index 46ad2f6..e9b73fa 100644 --- a/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs +++ b/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs @@ -6,9 +6,10 @@ namespace LightlessSync.API.Dto.Group; [MessagePackObject(keyAsPropertyName: true)] public record GroupFullInfoDto(GroupData Group, UserData Owner, GroupPermissions GroupPermissions, - GroupUserPreferredPermissions GroupUserPermissions, GroupPairUserInfo GroupUserInfo, + GroupUserPreferredPermissions GroupUserPermissions, GroupPairUserInfo GroupUserInfo, DateTime? GroupUserJoinedAt, Dictionary GroupPairUserInfos) : GroupInfoDto(Group, Owner, GroupPermissions) { public GroupUserPreferredPermissions GroupUserPermissions { get; set; } = GroupUserPermissions; public GroupPairUserInfo GroupUserInfo { get; set; } = GroupUserInfo; + public DateTime? GroupUserJoinedAt { get; set; } = GroupUserJoinedAt; } \ No newline at end of file diff --git a/LightlessSyncAPI/Dto/Group/GroupPairDto.cs b/LightlessSyncAPI/Dto/Group/GroupPairDto.cs index e1f4ef0..100e2b9 100644 --- a/LightlessSyncAPI/Dto/Group/GroupPairDto.cs +++ b/LightlessSyncAPI/Dto/Group/GroupPairDto.cs @@ -9,4 +9,5 @@ public record GroupPairDto(GroupData Group, UserData User) : GroupDto(Group) public string UID => User.UID; public string? UserAlias => User.Alias; public string UserAliasOrUID => User.AliasOrUID; + } \ No newline at end of file diff --git a/LightlessSyncAPI/Dto/Group/GroupProfileDto.cs b/LightlessSyncAPI/Dto/Group/GroupProfileDto.cs new file mode 100644 index 0000000..03d2b7c --- /dev/null +++ b/LightlessSyncAPI/Dto/Group/GroupProfileDto.cs @@ -0,0 +1,6 @@ +using LightlessSync.API.Data; + +namespace LightlessSync.API.Dto.Group +{ + public record GroupProfileDto(GroupData Group, string? Description, string? Tags, string? PictureBase64) : GroupDto(Group); +} diff --git a/LightlessSyncAPI/SignalR/ILightlessHub.cs b/LightlessSyncAPI/SignalR/ILightlessHub.cs index 99cd1b2..24918bb 100644 --- a/LightlessSyncAPI/SignalR/ILightlessHub.cs +++ b/LightlessSyncAPI/SignalR/ILightlessHub.cs @@ -57,6 +57,7 @@ public interface ILightlessHub Task GroupJoinFinalize(GroupJoinDto passwordedGroup); Task GroupLeave(GroupDto group); Task GroupRemoveUser(GroupPairDto groupPair); + Task GroupSetProfile(GroupProfileDto dto); Task GroupSetUserInfo(GroupPairUserInfoDto groupPair); Task> GroupsGetAll(); Task GroupUnbanUser(GroupPairDto groupPair);