From 28e1cc46958ce34f2cb1c438cca67c9d5efe1484 Mon Sep 17 00:00:00 2001 From: CakeAndBanana Date: Wed, 17 Sep 2025 02:09:23 +0200 Subject: [PATCH 1/7] 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); From 43be25cc45eff1966d82ff254110ade2cbd07278 Mon Sep 17 00:00:00 2001 From: CakeAndBanana Date: Wed, 17 Sep 2025 02:38:21 +0200 Subject: [PATCH 2/7] Added get of group profile, removed group from model. redone group data. --- LightlessSyncAPI/Data/GroupData.cs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/LightlessSyncAPI/Data/GroupData.cs b/LightlessSyncAPI/Data/GroupData.cs index 1aa92b3..5e26435 100644 --- a/LightlessSyncAPI/Data/GroupData.cs +++ b/LightlessSyncAPI/Data/GroupData.cs @@ -3,17 +3,11 @@ namespace LightlessSync.API.Data; [MessagePackObject(keyAsPropertyName: true)] -public record GroupData(string GID, string? Alias = null, DateTime? CreatedAt = null, string? Description = null, string? Tags = null, string? Avatar = null) +public record GroupData(string GID, string? Alias = null, DateTime? CreatedAt = 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 From 96744f4f28142a5cd40103d6ee209761b354b818 Mon Sep 17 00:00:00 2001 From: CakeAndBanana Date: Wed, 17 Sep 2025 02:41:42 +0200 Subject: [PATCH 3/7] Adding getprofile in interface. --- LightlessSyncAPI/SignalR/ILightlessHub.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/LightlessSyncAPI/SignalR/ILightlessHub.cs b/LightlessSyncAPI/SignalR/ILightlessHub.cs index 24918bb..8104c88 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 GroupGetProfile(GroupDto dto); Task GroupSetProfile(GroupProfileDto dto); Task GroupSetUserInfo(GroupPairUserInfoDto groupPair); Task> GroupsGetAll(); From 75aebca693be471efa9e0658727ede56153a73ac Mon Sep 17 00:00:00 2001 From: CakeAndBanana Date: Wed, 17 Sep 2025 05:37:04 +0200 Subject: [PATCH 4/7] Added client sendback of profileDTO --- LightlessSyncAPI/SignalR/ILightlessHub.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/LightlessSyncAPI/SignalR/ILightlessHub.cs b/LightlessSyncAPI/SignalR/ILightlessHub.cs index 8104c88..adcc6dc 100644 --- a/LightlessSyncAPI/SignalR/ILightlessHub.cs +++ b/LightlessSyncAPI/SignalR/ILightlessHub.cs @@ -21,6 +21,7 @@ public interface ILightlessHub Task Client_GroupPairJoined(GroupPairFullInfoDto groupPairInfoDto); Task Client_GroupPairLeft(GroupPairDto groupPairDto); Task Client_GroupSendFullInfo(GroupFullInfoDto groupInfo); + Task Client_GroupSendProfile (GroupProfileDto groupInfo); Task Client_GroupSendInfo(GroupInfoDto groupInfo); Task Client_ReceiveServerMessage(MessageSeverity messageSeverity, string message); Task Client_UpdateSystemInfo(SystemInfoDto systemInfo); From 7abe2b1ef73f10c3020539ae4e525dd91b24cca4 Mon Sep 17 00:00:00 2001 From: CakeAndBanana Date: Thu, 25 Sep 2025 02:03:41 +0200 Subject: [PATCH 5/7] Changed GroupJoinDto --- LightlessSyncAPI/Dto/Group/GroupJoinDto.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LightlessSyncAPI/Dto/Group/GroupJoinDto.cs b/LightlessSyncAPI/Dto/Group/GroupJoinDto.cs index 43c1c74..2bb89fd 100644 --- a/LightlessSyncAPI/Dto/Group/GroupJoinDto.cs +++ b/LightlessSyncAPI/Dto/Group/GroupJoinDto.cs @@ -8,4 +8,4 @@ namespace LightlessSync.API.Dto.Group; public record GroupPasswordDto(GroupData Group, string Password) : GroupDto(Group); [MessagePackObject(keyAsPropertyName: true)] -public record GroupJoinDto(GroupData Group, string Password, GroupUserPreferredPermissions GroupUserPreferredPermissions) : GroupPasswordDto(Group, Password); \ No newline at end of file +public record GroupJoinDto(GroupData Group, string Password, GroupUserPreferredPermissions GroupUserPreferredPermissions, bool Finder = false) : GroupPasswordDto(Group, Password); \ No newline at end of file From 69055b0f323e6d35f55750fd1dc5659a8e36b085 Mon Sep 17 00:00:00 2001 From: CakeAndBanana Date: Thu, 25 Sep 2025 03:34:36 +0200 Subject: [PATCH 6/7] Change in groupfullinfo --- LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs b/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs index e9b73fa..46ad2f6 100644 --- a/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs +++ b/LightlessSyncAPI/Dto/Group/GroupFullInfoDto.cs @@ -6,10 +6,9 @@ namespace LightlessSync.API.Dto.Group; [MessagePackObject(keyAsPropertyName: true)] public record GroupFullInfoDto(GroupData Group, UserData Owner, GroupPermissions GroupPermissions, - GroupUserPreferredPermissions GroupUserPermissions, GroupPairUserInfo GroupUserInfo, DateTime? GroupUserJoinedAt, + GroupUserPreferredPermissions GroupUserPermissions, GroupPairUserInfo GroupUserInfo, 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 From aec2a5023e8a513b63dc03d59a70aa51ab61941c Mon Sep 17 00:00:00 2001 From: defnotken Date: Thu, 25 Sep 2025 10:25:12 -0500 Subject: [PATCH 7/7] remove created at for now --- LightlessSyncAPI/Data/GroupData.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/LightlessSyncAPI/Data/GroupData.cs b/LightlessSyncAPI/Data/GroupData.cs index 5e26435..6fc07ba 100644 --- a/LightlessSyncAPI/Data/GroupData.cs +++ b/LightlessSyncAPI/Data/GroupData.cs @@ -6,8 +6,5 @@ namespace LightlessSync.API.Data; public record GroupData(string GID, string? Alias = null, DateTime? CreatedAt = null) { [IgnoreMember] - public string AliasOrGID => string.IsNullOrWhiteSpace(Alias) ? GID : Alias; - [IgnoreMember] - public DateTime? CreatedAt { get; set; } = CreatedAt; - + public string AliasOrGID => Alias ?? GID; } \ No newline at end of file