using MareSynchronos.API; using Microsoft.AspNetCore.SignalR.Client; using System.Collections.Generic; using System.Threading.Tasks; namespace MareSynchronos.WebAPI; public partial class ApiController { public async Task GroupCreate() { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return new GroupCreatedDto(); return await _mareHub!.InvokeAsync(nameof(GroupCreate)).ConfigureAwait(false); } public async Task GroupChangePassword(string gid, string newpassword) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return false; return await _mareHub!.InvokeAsync(nameof(GroupChangePassword), gid, newpassword).ConfigureAwait(false); } public async Task> GroupsGetAll() { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return new List(); return await _mareHub!.InvokeAsync>(nameof(GroupsGetAll)).ConfigureAwait(false); } public async Task> GroupsGetUsersInGroup(string gid) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return new List(); return await _mareHub!.InvokeAsync>(nameof(GroupsGetUsersInGroup), gid).ConfigureAwait(false); } public async Task GroupJoin(string gid, string password) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return false; return await _mareHub!.InvokeAsync(nameof(GroupJoin), gid.Trim(), password).ConfigureAwait(false); } public async Task GroupChangeInviteState(string gid, bool opened) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupChangeInviteState), gid, opened).ConfigureAwait(false); } public async Task GroupDelete(string gid) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupDelete), gid).ConfigureAwait(false); } public async Task GroupChangePinned(string gid, string uid, bool isPinned) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupChangePinned), gid, uid, isPinned).ConfigureAwait(false); } public async Task GroupClear(string gid) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupClear), gid).ConfigureAwait(false); } public async Task GroupLeave(string gid) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupLeave), gid).ConfigureAwait(false); } public async Task GroupChangePauseState(string gid, bool isPaused) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupChangePauseState), gid, isPaused).ConfigureAwait(false); } public async Task GroupRemoveUser(string gid, string uid) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupRemoveUser), gid, uid).ConfigureAwait(false); } public async Task GroupChangeOwnership(string gid, string uid) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupChangeOwnership), gid, uid).ConfigureAwait(false); } public async Task GroupBanUser(string gid, string uid, string reason) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupBanUser), gid, uid, reason).ConfigureAwait(false); } public async Task GroupUnbanUser(string gid, string uid) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupUnbanUser), gid, uid).ConfigureAwait(false); } public async Task> GroupGetBannedUsers(string gid) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return new(); return await _mareHub!.InvokeAsync>(nameof(GroupGetBannedUsers), gid).ConfigureAwait(false); } public async Task GroupSetModerator(string gid, string uid, bool isModerator) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return; await _mareHub!.SendAsync(nameof(GroupSetModerator), gid, uid, isModerator).ConfigureAwait(false); } public async Task> GroupCreateTempInvite(string gid, int amount) { if (!IsConnected || string.Equals(SecretKey, "-", System.StringComparison.Ordinal)) return new(); return await _mareHub!.InvokeAsync>(nameof(GroupCreateTempInvite), gid, amount).ConfigureAwait(false); } }