Major API rework for paradigm change (#10)

* start with group permissions implementation

* refactor group dto stuff

* adjustments to api as necessary from client

* more api refactor for UserData

* use implicit usings and file scoped namespaces

* fix userpermissionsextensions

* fix extenions

* add more comparers

* adjust comparers

* remove admin stuff (tbd migration to discord bot)

* adjust extensions

* code style for api

---------

Co-authored-by: rootdarkarchon <root.darkarchon@outlook.com>
This commit is contained in:
rootdarkarchon
2023-01-29 15:14:33 +01:00
committed by GitHub
parent 2015496ec0
commit 0d04aaafac
66 changed files with 669 additions and 378 deletions

View File

@@ -0,0 +1,19 @@
using MareSynchronos.API.Data;
namespace MareSynchronos.API.Dto;
public record ConnectionDto(UserData User)
{
public int ServerVersion { get; set; }
public bool IsAdmin { get; set; }
public bool IsModerator { get; set; }
public ServerInfo ServerInfo { get; set; } = new();
}
public record ServerInfo
{
public string ShardName { get; set; } = string.Empty;
public int MaxGroupUserCount { get; set; }
public int MaxGroupsCreatedByUser { get; set; }
public int MaxGroupsJoinedByUser { get; set; }
}

View File

@@ -0,0 +1,11 @@
namespace MareSynchronos.API.Dto.Files;
public record DownloadFileDto : ITransferFileDto
{
public bool FileExists { get; set; } = true;
public string Hash { get; set; } = string.Empty;
public string Url { get; set; } = string.Empty;
public long Size { get; set; } = 0;
public bool IsForbidden { get; set; } = false;
public string ForbiddenBy { get; set; } = string.Empty;
}

View File

@@ -0,0 +1,7 @@
namespace MareSynchronos.API.Dto.Files;
public record ForbiddenFileDto
{
public string Hash { get; set; } = string.Empty;
public string ForbiddenBy { get; set; } = string.Empty;
}

View File

@@ -0,0 +1,8 @@
namespace MareSynchronos.API.Dto.Files;
public interface ITransferFileDto
{
string Hash { get; set; }
bool IsForbidden { get; set; }
string ForbiddenBy { get; set; }
}

View File

@@ -0,0 +1,8 @@
namespace MareSynchronos.API.Dto.Files;
public record UploadFileDto : ITransferFileDto
{
public string Hash { get; set; } = string.Empty;
public bool IsForbidden { get; set; } = false;
public string ForbiddenBy { get; set; } = string.Empty;
}

View File

@@ -0,0 +1,17 @@
using MareSynchronos.API.Data;
namespace MareSynchronos.API.Dto.Group;
public record BannedGroupUserDto : GroupPairDto
{
public BannedGroupUserDto(GroupData group, UserData user, string reason, DateTime bannedOn, string bannedBy) : base(group, user)
{
Reason = reason;
BannedOn = bannedOn;
BannedBy = bannedBy;
}
public string Reason { get; set; }
public DateTime BannedOn { get; set; }
public string BannedBy { get; set; }
}

View File

@@ -0,0 +1,11 @@
using MareSynchronos.API.Data;
namespace MareSynchronos.API.Dto.Group;
public record GroupDto(GroupData Group)
{
public GroupData Group { get; set; } = Group;
public string GID => Group.GID;
public string? GroupAlias => Group.Alias;
public string GroupAliasOrGID => Group.AliasOrGID;
}

View File

@@ -0,0 +1,10 @@
using MareSynchronos.API.Data;
using MareSynchronos.API.Data.Enum;
namespace MareSynchronos.API.Dto.Group;
public record GroupFullInfoDto(GroupData Group, UserData Owner, GroupPermissions GroupPermissions, GroupUserPermissions GroupUserPermissions, GroupUserInfo GroupUserInfo) : GroupInfoDto(Group, Owner, GroupPermissions)
{
public GroupUserPermissions GroupUserPermissions { get; set; } = GroupUserPermissions;
public GroupUserInfo GroupUserInfo { get; set; } = GroupUserInfo;
}

View File

@@ -0,0 +1,14 @@
using MareSynchronos.API.Data;
using MareSynchronos.API.Data.Enum;
namespace MareSynchronos.API.Dto.Group;
public record GroupInfoDto(GroupData Group, UserData Owner, GroupPermissions GroupPermissions) : GroupDto(Group)
{
public GroupPermissions GroupPermissions { get; set; } = GroupPermissions;
public UserData Owner { get; set; } = Owner;
public string OwnerUID => Owner.UID;
public string? OwnerAlias => Owner.Alias;
public string OwnerAliasOrUID => Owner.AliasOrUID;
}

View File

@@ -0,0 +1,10 @@
using MareSynchronos.API.Data;
namespace MareSynchronos.API.Dto.Group;
public record GroupPairDto(GroupData Group, UserData User) : GroupDto(Group)
{
public string UID => User.UID;
public string? UserAlias => User.Alias;
public string UserAliasOrUID => User.AliasOrUID;
}

View File

@@ -0,0 +1,10 @@
using MareSynchronos.API.Data;
using MareSynchronos.API.Data.Enum;
namespace MareSynchronos.API.Dto.Group;
public record GroupPairFullInfoDto(GroupData Group, UserData User, GroupUserInfo GroupPairStatusInfo, GroupUserPermissions GroupUserPermissions) : GroupPairDto(Group, User)
{
public GroupUserInfo GroupPairStatusInfo { get; set; } = GroupPairStatusInfo;
public GroupUserPermissions GroupUserPermissions { get; set; } = GroupUserPermissions;
}

View File

@@ -0,0 +1,6 @@
using MareSynchronos.API.Data;
using MareSynchronos.API.Data.Enum;
namespace MareSynchronos.API.Dto.Group;
public record GroupPairUserInfoDto(GroupData Group, UserData User, GroupUserInfo GroupUserInfo) : GroupPairDto(Group, User);

View File

@@ -0,0 +1,6 @@
using MareSynchronos.API.Data;
using MareSynchronos.API.Data.Enum;
namespace MareSynchronos.API.Dto.Group;
public record GroupPairUserPermissionDto(GroupData Group, UserData User, GroupUserPermissions GroupPairPermissions) : GroupPairDto(Group, User);

View File

@@ -0,0 +1,5 @@
using MareSynchronos.API.Data;
namespace MareSynchronos.API.Dto.Group;
public record GroupPasswordDto(GroupData Group, string Password) : GroupDto(Group);

View File

@@ -0,0 +1,6 @@
using MareSynchronos.API.Data;
using MareSynchronos.API.Data.Enum;
namespace MareSynchronos.API.Dto.Group;
public record GroupPermissionDto(GroupData Group, GroupPermissions Permissions) : GroupDto(Group);

View File

@@ -0,0 +1,6 @@
namespace MareSynchronos.API.Dto;
public record SystemInfoDto
{
public int OnlineUsers { get; set; }
}

View File

@@ -0,0 +1,5 @@
using MareSynchronos.API.Data;
namespace MareSynchronos.API.Dto.User;
public record OnlineUserCharaDataDto(UserData User, CharacterData CharaData) : UserDto(User);

View File

@@ -0,0 +1,5 @@
using MareSynchronos.API.Data;
namespace MareSynchronos.API.Dto.User;
public record OnlineUserIdentDto(UserData User, string Ident) : UserDto(User);

View File

@@ -0,0 +1,5 @@
using MareSynchronos.API.Data;
namespace MareSynchronos.API.Dto.User;
public record UserCharaDataMessageDto(List<UserData> Recipients, CharacterData CharaData);

View File

@@ -0,0 +1,5 @@
using MareSynchronos.API.Data;
namespace MareSynchronos.API.Dto.User;
public record UserDto(UserData User);

View File

@@ -0,0 +1,10 @@
using MareSynchronos.API.Data;
using MareSynchronos.API.Data.Enum;
namespace MareSynchronos.API.Dto.User;
public record UserPairDto(UserData User, UserPermissions OwnPermissions, UserPermissions OtherPermissions) : UserDto(User)
{
public UserPermissions OwnPermissions { get; set; } = OwnPermissions;
public UserPermissions OtherPermissions { get; set; } = OtherPermissions;
}

View File

@@ -0,0 +1,6 @@
using MareSynchronos.API.Data;
using MareSynchronos.API.Data.Enum;
namespace MareSynchronos.API.Dto.User;
public record UserPermissionsDto(UserData User, UserPermissions Permissions) : UserDto(User);