Added changes for the API to support profiles
This commit is contained in:
@@ -3,8 +3,17 @@
|
|||||||
namespace LightlessSync.API.Data;
|
namespace LightlessSync.API.Data;
|
||||||
|
|
||||||
[MessagePackObject(keyAsPropertyName: true)]
|
[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]
|
[IgnoreMember]
|
||||||
public string AliasOrGID => string.IsNullOrWhiteSpace(Alias) ? GID : Alias;
|
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;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -6,9 +6,10 @@ namespace LightlessSync.API.Dto.Group;
|
|||||||
|
|
||||||
[MessagePackObject(keyAsPropertyName: true)]
|
[MessagePackObject(keyAsPropertyName: true)]
|
||||||
public record GroupFullInfoDto(GroupData Group, UserData Owner, GroupPermissions GroupPermissions,
|
public record GroupFullInfoDto(GroupData Group, UserData Owner, GroupPermissions GroupPermissions,
|
||||||
GroupUserPreferredPermissions GroupUserPermissions, GroupPairUserInfo GroupUserInfo,
|
GroupUserPreferredPermissions GroupUserPermissions, GroupPairUserInfo GroupUserInfo, DateTime? GroupUserJoinedAt,
|
||||||
Dictionary<string, GroupPairUserInfo> GroupPairUserInfos) : GroupInfoDto(Group, Owner, GroupPermissions)
|
Dictionary<string, GroupPairUserInfo> GroupPairUserInfos) : GroupInfoDto(Group, Owner, GroupPermissions)
|
||||||
{
|
{
|
||||||
public GroupUserPreferredPermissions GroupUserPermissions { get; set; } = GroupUserPermissions;
|
public GroupUserPreferredPermissions GroupUserPermissions { get; set; } = GroupUserPermissions;
|
||||||
public GroupPairUserInfo GroupUserInfo { get; set; } = GroupUserInfo;
|
public GroupPairUserInfo GroupUserInfo { get; set; } = GroupUserInfo;
|
||||||
|
public DateTime? GroupUserJoinedAt { get; set; } = GroupUserJoinedAt;
|
||||||
}
|
}
|
||||||
@@ -9,4 +9,5 @@ public record GroupPairDto(GroupData Group, UserData User) : GroupDto(Group)
|
|||||||
public string UID => User.UID;
|
public string UID => User.UID;
|
||||||
public string? UserAlias => User.Alias;
|
public string? UserAlias => User.Alias;
|
||||||
public string UserAliasOrUID => User.AliasOrUID;
|
public string UserAliasOrUID => User.AliasOrUID;
|
||||||
|
|
||||||
}
|
}
|
||||||
6
LightlessSyncAPI/Dto/Group/GroupProfileDto.cs
Normal file
6
LightlessSyncAPI/Dto/Group/GroupProfileDto.cs
Normal file
@@ -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);
|
||||||
|
}
|
||||||
@@ -57,6 +57,7 @@ public interface ILightlessHub
|
|||||||
Task<bool> GroupJoinFinalize(GroupJoinDto passwordedGroup);
|
Task<bool> GroupJoinFinalize(GroupJoinDto passwordedGroup);
|
||||||
Task GroupLeave(GroupDto group);
|
Task GroupLeave(GroupDto group);
|
||||||
Task GroupRemoveUser(GroupPairDto groupPair);
|
Task GroupRemoveUser(GroupPairDto groupPair);
|
||||||
|
Task GroupSetProfile(GroupProfileDto dto);
|
||||||
Task GroupSetUserInfo(GroupPairUserInfoDto groupPair);
|
Task GroupSetUserInfo(GroupPairUserInfoDto groupPair);
|
||||||
Task<List<GroupFullInfoDto>> GroupsGetAll();
|
Task<List<GroupFullInfoDto>> GroupsGetAll();
|
||||||
Task GroupUnbanUser(GroupPairDto groupPair);
|
Task GroupUnbanUser(GroupPairDto groupPair);
|
||||||
|
|||||||
Reference in New Issue
Block a user