Browse Source

Fixed: now using API entities for REST client.

pull/835/head
Mateusz Brawański 8 years ago
parent
commit
0c6daefb63
2 changed files with 27 additions and 16 deletions
  1. +8
    -8
      src/Discord.Net.Rest/DiscordRestApiClient.cs
  2. +19
    -8
      src/Discord.Net.Rest/Entities/Guilds/GuildHelper.cs

+ 8
- 8
src/Discord.Net.Rest/DiscordRestApiClient.cs View File

@@ -1067,26 +1067,26 @@ namespace Discord.API
}

//Guild emoji
public async Task<IReadOnlyCollection<GuildEmote>> ListGuildEmotesAsync(ulong guildId, RequestOptions options = null)
public async Task<IReadOnlyCollection<Emoji>> ListGuildEmotesAsync(ulong guildId, RequestOptions options = null)
{
Preconditions.NotEqual(guildId, 0, nameof(guildId));
options = RequestOptions.CreateOrClone(options);

var ids = new BucketIds(guildId: guildId);
return await SendAsync<IReadOnlyCollection<GuildEmote>>("GET", () => $"guilds/{guildId}/emojis", ids, options: options);
return await SendAsync<IReadOnlyCollection<Emoji>>("GET", () => $"guilds/{guildId}/emojis", ids, options: options);
}

public async Task<GuildEmote> GetGuildEmoteAsync(ulong guildId, ulong emoteId, RequestOptions options = null)
public async Task<Emoji> GetGuildEmoteAsync(ulong guildId, ulong emoteId, RequestOptions options = null)
{
Preconditions.NotEqual(guildId, 0, nameof(guildId));
Preconditions.NotEqual(emoteId, 0, nameof(emoteId));
options = RequestOptions.CreateOrClone(options);

var ids = new BucketIds(guildId: guildId);
return await SendAsync<GuildEmote>("GET", () => $"guilds/{guildId}/emojis/{emoteId}", ids, options: options);
return await SendAsync<Emoji>("GET", () => $"guilds/{guildId}/emojis/{emoteId}", ids, options: options);
}

public async Task<GuildEmote> CreateGuildEmoteAsync(ulong guildId, Rest.CreateGuildEmoteParams args, RequestOptions options = null)
public async Task<Emoji> CreateGuildEmoteAsync(ulong guildId, Rest.CreateGuildEmoteParams args, RequestOptions options = null)
{
Preconditions.NotEqual(guildId, 0, nameof(guildId));
Preconditions.NotNull(args, nameof(args));
@@ -1095,10 +1095,10 @@ namespace Discord.API
options = RequestOptions.CreateOrClone(options);

var ids = new BucketIds(guildId: guildId);
return await SendJsonAsync<GuildEmote>("POST", () => $"guilds/{guildId}/emojis", args, ids, options: options);
return await SendJsonAsync<Emoji>("POST", () => $"guilds/{guildId}/emojis", args, ids, options: options);
}

public async Task<GuildEmote> ModifyGuildEmoteAsync(ulong guildId, ulong emoteId, ModifyGuildEmoteParams args, RequestOptions options = null)
public async Task<Emoji> ModifyGuildEmoteAsync(ulong guildId, ulong emoteId, ModifyGuildEmoteParams args, RequestOptions options = null)
{
Preconditions.NotEqual(guildId, 0, nameof(guildId));
Preconditions.NotEqual(emoteId, 0, nameof(emoteId));
@@ -1106,7 +1106,7 @@ namespace Discord.API
options = RequestOptions.CreateOrClone(options);

var ids = new BucketIds(guildId: guildId);
return await SendJsonAsync<GuildEmote>("PATCH", () => $"guilds/{guildId}/emojis/{emoteId}", args, ids, options: options);
return await SendJsonAsync<Emoji>("PATCH", () => $"guilds/{guildId}/emojis/{emoteId}", args, ids, options: options);
}

public async Task DeleteGuildEmoteAsync(ulong guildId, ulong emoteId, RequestOptions options = null)


+ 19
- 8
src/Discord.Net.Rest/Entities/Guilds/GuildHelper.cs View File

@@ -255,11 +255,20 @@ namespace Discord.Rest
}

//Emotes
public static Task<IReadOnlyCollection<GuildEmote>> ListEmotesAsync(IGuild guild, BaseDiscordClient client, RequestOptions options)
=> client.ApiClient.ListGuildEmotesAsync(guild.Id, options);
public static Task<GuildEmote> GetEmoteAsync(IGuild guild, BaseDiscordClient client, ulong id, RequestOptions options)
=> client.ApiClient.GetGuildEmoteAsync(guild.Id, id, options);
public static Task<GuildEmote> CreateEmoteAsync(IGuild guild, BaseDiscordClient client, string name, Image image, Optional<IEnumerable<IRole>> roles,
public static async Task<IReadOnlyCollection<GuildEmote>> ListEmotesAsync(IGuild guild, BaseDiscordClient client, RequestOptions options)
{
var model = await client.ApiClient.ListGuildEmotesAsync(guild.Id, options);
var emotes = ImmutableArray.CreateBuilder<GuildEmote>(model.Count);
foreach (var xm in model)
emotes.Add(xm.ToEntity());
return emotes;
}
public static async Task<GuildEmote> GetEmoteAsync(IGuild guild, BaseDiscordClient client, ulong id, RequestOptions options)
{
var emote = await client.ApiClient.GetGuildEmoteAsync(guild.Id, id, options);
return emote.ToEntity();
}
public static async Task<GuildEmote> CreateEmoteAsync(IGuild guild, BaseDiscordClient client, string name, Image image, Optional<IEnumerable<IRole>> roles,
RequestOptions options)
{
var apiargs = new CreateGuildEmoteParams
@@ -270,9 +279,10 @@ namespace Discord.Rest
if (roles.IsSpecified)
apiargs.RoleIds = roles.Value?.Select(xr => xr.Id)?.ToArray();

return client.ApiClient.CreateGuildEmoteAsync(guild.Id, apiargs, options);
var emote = await client.ApiClient.CreateGuildEmoteAsync(guild.Id, apiargs, options);
return emote.ToEntity();
}
public static Task<GuildEmote> ModifyEmoteAsync(IGuild guild, BaseDiscordClient client, ulong id, Action<EmoteProperties> func,
public static async Task<GuildEmote> ModifyEmoteAsync(IGuild guild, BaseDiscordClient client, ulong id, Action<EmoteProperties> func,
RequestOptions options)
{
if (func == null) throw new ArgumentNullException(nameof(func));
@@ -287,7 +297,8 @@ namespace Discord.Rest
if (props.Roles.IsSpecified)
apiargs.RoleIds = props.Roles.Value?.Select(xr => xr.Id)?.ToArray();

return client.ApiClient.ModifyGuildEmoteAsync(guild.Id, id, apiargs, options);
var emote = await client.ApiClient.ModifyGuildEmoteAsync(guild.Id, id, apiargs, options);
return emote.ToEntity();
}
public static Task DeleteEmoteAsync(IGuild guild, BaseDiscordClient client, ulong id, RequestOptions options)
=> client.ApiClient.DeleteGuildEmoteAsync(guild.Id, id, options);


Loading…
Cancel
Save