Added CreatePMChannel
This commit is contained in:
@@ -31,7 +31,7 @@ namespace Discord.Net.Tests
|
|||||||
Task.WaitAll(_bot2.Servers.Select(x => _bot2.LeaveServer(x)).ToArray());
|
Task.WaitAll(_bot2.Servers.Select(x => _bot2.LeaveServer(x)).ToArray());
|
||||||
|
|
||||||
//Create new server and invite other bot to it
|
//Create new server and invite other bot to it
|
||||||
_testServer = _bot1.CreateServer("Discord.Net Testbed", Regions.US_East).Result;
|
_testServer = _bot1.CreateServer("Discord.Net Testing", Regions.US_East).Result;
|
||||||
_testServerChannel = _testServer.DefaultChannel;
|
_testServerChannel = _testServer.DefaultChannel;
|
||||||
Invite invite = _bot1.CreateInvite(_testServer, 60, 1, false, false).Result;
|
Invite invite = _bot1.CreateInvite(_testServer, 60, 1, false, false).Result;
|
||||||
_bot2.AcceptInvite(invite).Wait();
|
_bot2.AcceptInvite(invite).Wait();
|
||||||
|
|||||||
@@ -41,6 +41,11 @@ namespace Discord.API
|
|||||||
var request = new APIRequests.CreateChannel { Name = name, Type = channelType };
|
var request = new APIRequests.CreateChannel { Name = name, Type = channelType };
|
||||||
return Http.Post<APIResponses.CreateChannel>(Endpoints.ServerChannels(serverId), request, options);
|
return Http.Post<APIResponses.CreateChannel>(Endpoints.ServerChannels(serverId), request, options);
|
||||||
}
|
}
|
||||||
|
public static Task<APIResponses.CreateChannel> CreatePMChannel(string myId, string recipientId, HttpOptions options)
|
||||||
|
{
|
||||||
|
var request = new APIRequests.CreatePMChannel { RecipientId = recipientId };
|
||||||
|
return Http.Post<APIResponses.CreateChannel>(Endpoints.UserChannels(myId), request, options);
|
||||||
|
}
|
||||||
public static Task<APIResponses.DestroyChannel> DestroyChannel(string channelId, HttpOptions options)
|
public static Task<APIResponses.DestroyChannel> DestroyChannel(string channelId, HttpOptions options)
|
||||||
=> Http.Delete<APIResponses.DestroyChannel>(Endpoints.Channel(channelId), options);
|
=> Http.Delete<APIResponses.DestroyChannel>(Endpoints.Channel(channelId), options);
|
||||||
public static Task<APIResponses.GetMessages[]> GetMessages(string channelId, HttpOptions options)
|
public static Task<APIResponses.GetMessages[]> GetMessages(string channelId, HttpOptions options)
|
||||||
|
|||||||
@@ -16,6 +16,14 @@
|
|||||||
public static readonly string AuthLogin = $"{Auth}/login";
|
public static readonly string AuthLogin = $"{Auth}/login";
|
||||||
public static readonly string AuthLogout = $"{Auth}/logout";
|
public static readonly string AuthLogout = $"{Auth}/logout";
|
||||||
|
|
||||||
|
// /api/channels
|
||||||
|
public static readonly string Channels = $"{BaseApi}/channels";
|
||||||
|
public static string Channel(string id) => $"{Channels}/{id}";
|
||||||
|
public static string ChannelTyping(string id) => $"{Channels}/{id}/typing";
|
||||||
|
public static string ChannelMessages(string id) => $"{Channels}/{id}/messages";
|
||||||
|
public static string ChannelMessages(string id, int limit) => $"{Channels}/{id}/messages?limit={limit}";
|
||||||
|
public static string ChannelInvites(string id) => $"{Channels}/{id}/invites";
|
||||||
|
|
||||||
// /api/guilds
|
// /api/guilds
|
||||||
public static readonly string Servers = $"{BaseApi}/guilds";
|
public static readonly string Servers = $"{BaseApi}/guilds";
|
||||||
public static string Server(string id) => $"{Servers}/{id}";
|
public static string Server(string id) => $"{Servers}/{id}";
|
||||||
@@ -27,15 +35,11 @@
|
|||||||
public static readonly string Invites = $"{BaseApi}/invite";
|
public static readonly string Invites = $"{BaseApi}/invite";
|
||||||
public static string Invite(string id) => $"{Invites}/{id}";
|
public static string Invite(string id) => $"{Invites}/{id}";
|
||||||
|
|
||||||
// /api/channels
|
// /api/users
|
||||||
public static readonly string Channels = $"{BaseApi}/channels";
|
public static readonly string Users = $"{BaseApi}/users";
|
||||||
public static string Channel(string id) => $"{Channels}/{id}";
|
public static string UserChannels(string id) => $"{Users}/{id}/channels";
|
||||||
public static string ChannelTyping(string id) => $"{Channels}/{id}/typing";
|
|
||||||
public static string ChannelMessages(string id) => $"{Channels}/{id}/messages";
|
|
||||||
public static string ChannelMessages(string id, int limit) => $"{Channels}/{id}/messages?limit={limit}";
|
|
||||||
public static string ChannelInvites(string id) => $"{Channels}/{id}/invites";
|
|
||||||
|
|
||||||
// /api/voice
|
// /api/voice
|
||||||
public static readonly string Voice = $"{BaseApi}/voice";
|
public static readonly string Voice = $"{BaseApi}/voice";
|
||||||
public static readonly string VoiceRegions = $"{Voice}/regions";
|
public static readonly string VoiceRegions = $"{Voice}/regions";
|
||||||
public static readonly string VoiceIce = $"{Voice}/ice";
|
public static readonly string VoiceIce = $"{Voice}/ice";
|
||||||
|
|||||||
@@ -38,6 +38,11 @@ namespace Discord.API.Models
|
|||||||
[JsonProperty(PropertyName = "type")]
|
[JsonProperty(PropertyName = "type")]
|
||||||
public string Type;
|
public string Type;
|
||||||
}
|
}
|
||||||
|
public class CreatePMChannel
|
||||||
|
{
|
||||||
|
[JsonProperty(PropertyName = "recipient_id")]
|
||||||
|
public string RecipientId;
|
||||||
|
}
|
||||||
|
|
||||||
public class CreateInvite
|
public class CreateInvite
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -444,16 +444,15 @@ namespace Discord
|
|||||||
}
|
}
|
||||||
public Task<Server> LeaveServer(Server server)
|
public Task<Server> LeaveServer(Server server)
|
||||||
=> LeaveServer(server.Id);
|
=> LeaveServer(server.Id);
|
||||||
public async Task<Server> LeaveServer(string id)
|
public async Task<Server> LeaveServer(string serverId)
|
||||||
{
|
{
|
||||||
CheckReady();
|
CheckReady();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await DiscordAPI.LeaveServer(id, _httpOptions);
|
await DiscordAPI.LeaveServer(serverId, _httpOptions);
|
||||||
}
|
}
|
||||||
//Happens if the room was destroyed as we try to leave it
|
|
||||||
catch (WebException ex) when ((ex.Response as HttpWebResponse)?.StatusCode == HttpStatusCode.NotFound) {}
|
catch (WebException ex) when ((ex.Response as HttpWebResponse)?.StatusCode == HttpStatusCode.NotFound) {}
|
||||||
return _servers.Remove(id);
|
return _servers.Remove(serverId);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Channels
|
//Channels
|
||||||
@@ -465,13 +464,25 @@ namespace Discord
|
|||||||
var response = await DiscordAPI.CreateChannel(serverId, name, region, _httpOptions);
|
var response = await DiscordAPI.CreateChannel(serverId, name, region, _httpOptions);
|
||||||
return _channels.Update(response.Id, response);
|
return _channels.Update(response.Id, response);
|
||||||
}
|
}
|
||||||
|
public Task<Channel> CreatePMChannel(User user, string name, string region)
|
||||||
|
=> CreateChannel(user.Id, name, region);
|
||||||
|
public async Task<Channel> CreatePMChannel(string recipientId, string name, string region)
|
||||||
|
{
|
||||||
|
CheckReady();
|
||||||
|
var response = await DiscordAPI.CreatePMChannel(UserId, recipientId, _httpOptions);
|
||||||
|
return _channels.Update(response.Id, response);
|
||||||
|
}
|
||||||
public Task<Channel> DestroyChannel(Channel channel)
|
public Task<Channel> DestroyChannel(Channel channel)
|
||||||
=> DestroyChannel(channel.Id);
|
=> DestroyChannel(channel.Id);
|
||||||
public async Task<Channel> DestroyChannel(string channelId)
|
public async Task<Channel> DestroyChannel(string channelId)
|
||||||
{
|
{
|
||||||
CheckReady();
|
CheckReady();
|
||||||
var response = await DiscordAPI.DestroyChannel(channelId, _httpOptions);
|
try
|
||||||
return _channels.Remove(response.Id);
|
{
|
||||||
|
var response = await DiscordAPI.DestroyChannel(channelId, _httpOptions);
|
||||||
|
}
|
||||||
|
catch (WebException ex) when ((ex.Response as HttpWebResponse)?.StatusCode == HttpStatusCode.NotFound) { }
|
||||||
|
return _channels.Remove(channelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Bans
|
//Bans
|
||||||
@@ -492,10 +503,14 @@ namespace Discord
|
|||||||
=> Unban(server.Id, userId);
|
=> Unban(server.Id, userId);
|
||||||
public Task Unban(string server, User user)
|
public Task Unban(string server, User user)
|
||||||
=> Unban(server, user.Id);
|
=> Unban(server, user.Id);
|
||||||
public Task Unban(string serverId, string userId)
|
public async Task Unban(string serverId, string userId)
|
||||||
{
|
{
|
||||||
CheckReady();
|
CheckReady();
|
||||||
return DiscordAPI.Unban(serverId, userId, _httpOptions);
|
try
|
||||||
|
{
|
||||||
|
await DiscordAPI.Unban(serverId, userId, _httpOptions);
|
||||||
|
}
|
||||||
|
catch (WebException ex) when ((ex.Response as HttpWebResponse)?.StatusCode == HttpStatusCode.NotFound) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -553,9 +568,13 @@ namespace Discord
|
|||||||
public async Task DeleteInvite(string id)
|
public async Task DeleteInvite(string id)
|
||||||
{
|
{
|
||||||
CheckReady();
|
CheckReady();
|
||||||
//Check if this is a human-readable link and get its ID
|
try
|
||||||
var response = await DiscordAPI.GetInvite(id, _httpOptions);
|
{
|
||||||
await DiscordAPI.DeleteInvite(response.Code, _httpOptions);
|
//Check if this is a human-readable link and get its ID
|
||||||
|
var response = await DiscordAPI.GetInvite(id, _httpOptions);
|
||||||
|
await DiscordAPI.DeleteInvite(response.Code, _httpOptions);
|
||||||
|
}
|
||||||
|
catch (WebException ex) when ((ex.Response as HttpWebResponse)?.StatusCode == HttpStatusCode.NotFound) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
//Chat
|
//Chat
|
||||||
|
|||||||
Reference in New Issue
Block a user