Browse Source

Added PruneUsers, renamed a few APIClient functions.

tags/docs-0.9
RogueException 9 years ago
parent
commit
bd74e4b712
5 changed files with 34 additions and 6 deletions
  1. +1
    -0
      src/Discord.Net/API/Endpoints.cs
  2. +6
    -0
      src/Discord.Net/API/Members.cs
  3. +16
    -4
      src/Discord.Net/DiscordAPIClient.cs
  4. +2
    -2
      src/Discord.Net/DiscordClient.Bans.cs
  5. +9
    -0
      src/Discord.Net/DiscordClient.Users.cs

+ 1
- 0
src/Discord.Net/API/Endpoints.cs 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}";


+ 6
- 0
src/Discord.Net/API/Members.cs 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 { }


+ 16
- 4
src/Discord.Net/DiscordAPIClient.cs 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)


+ 2
- 2
src/Discord.Net/DiscordClient.Bans.cs 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) { }
}
}

+ 9
- 0
src/Discord.Net/DiscordClient.Users.cs 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)


Loading…
Cancel
Save