Added PruneUsers, renamed a few APIClient functions.

This commit is contained in:
RogueException
2015-10-26 01:39:28 -03:00
parent 334b049d24
commit bd74e4b712
5 changed files with 34 additions and 6 deletions

View File

@@ -28,6 +28,7 @@
public static string ServerBan(string serverId, string userId) => $"guilds/{serverId}/bans/{userId}";
public static string ServerRoles(string serverId) => $"guilds/{serverId}/roles";
public static string ServerRole(string serverId, string roleId) => $"guilds/{serverId}/roles/{roleId}";
public static string ServerPrune(string serverId, int days) => $"guilds/{serverId}/prune?days={days}";
public const string Invites = "invite";
public static string Invite(string inviteId) => $"invite/{inviteId}";

View File

@@ -82,6 +82,12 @@ namespace Discord.API
public IEnumerable<string> Roles;
}
public class PruneUsersResponse
{
[JsonProperty("pruned")]
public int? Pruned;
}
//Events
internal sealed class MemberAddEvent : MemberInfo { }
internal sealed class MemberUpdateEvent : MemberInfo { }

View File

@@ -136,7 +136,7 @@ namespace Discord
return _rest.Delete(Endpoints.Invite(inviteId));
}
//Members
//Users
public Task EditUser(string serverId, string userId, bool? mute = null, bool? deaf = null, IEnumerable<string> roles = null)
{
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
@@ -145,27 +145,39 @@ namespace Discord
var request = new EditMemberRequest { Mute = mute, Deaf = deaf, Roles = roles };
return _rest.Patch(Endpoints.ServerMember(serverId, userId), request);
}
public Task Kick(string serverId, string userId)
public Task KickUser(string serverId, string userId)
{
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
if (userId == null) throw new ArgumentNullException(nameof(userId));
return _rest.Delete(Endpoints.ServerMember(serverId, userId));
}
public Task Ban(string serverId, string userId)
public Task BanUser(string serverId, string userId)
{
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
if (userId == null) throw new ArgumentNullException(nameof(userId));
return _rest.Put(Endpoints.ServerBan(serverId, userId));
}
public Task Unban(string serverId, string userId)
public Task UnbanUser(string serverId, string userId)
{
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
if (userId == null) throw new ArgumentNullException(nameof(userId));
return _rest.Delete(Endpoints.ServerBan(serverId, userId));
}
public async Task<int> PruneUsers(string serverId, int days, bool simulate)
{
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
if (days <= 0) throw new ArgumentOutOfRangeException(nameof(days));
PruneUsersResponse response;
if (simulate)
response = await _rest.Get<PruneUsersResponse>(Endpoints.ServerPrune(serverId, days));
else
response = await _rest.Post<PruneUsersResponse>(Endpoints.ServerPrune(serverId, days));
return response.Pruned ?? 0;
}
//Messages
public Task<SendMessageResponse> SendMessage(string channelId, string message, IEnumerable<string> mentionedUserIds = null, string nonce = null, bool isTTS = false)

View File

@@ -38,7 +38,7 @@ namespace Discord
if (user.Server == null) throw new ArgumentException("Unable to ban a user in a private chat.");
CheckReady();
return _api.Ban(user.Server.Id, user.Id);
return _api.BanUser(user.Server.Id, user.Id);
}
/// <summary> Unbans a user from the provided server. </summary>
@@ -48,7 +48,7 @@ namespace Discord
if (userId == null) throw new ArgumentNullException(nameof(userId));
CheckReady();
try { await _api.Unban(server.Id, userId).ConfigureAwait(false); }
try { await _api.UnbanUser(server.Id, userId).ConfigureAwait(false); }
catch (HttpException ex) when (ex.StatusCode == HttpStatusCode.NotFound) { }
}
}

View File

@@ -173,6 +173,15 @@ namespace Discord
return _api.EditUser(user.Server?.Id, user.Id, mute: mute, deaf: deaf, roles: roles.Select(x => x.Id));
}
public Task<int> PruneUsers(string serverId, int days, bool simulate = false)
{
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
if (days <= 0) throw new ArgumentOutOfRangeException(nameof(days));
CheckReady();
return _api.PruneUsers(serverId, days, simulate);
}
public Task<EditUserResponse> EditProfile(string currentPassword = "",
string username = null, string email = null, string password = null,
ImageType avatarType = ImageType.Png, byte[] avatar = null)