Browse Source

Fixed ModifyCommandPermissions Invalid Form Body error (#55)

pull/1923/head
Ge GitHub 3 years ago
parent
commit
e6c73e1ada
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 5 deletions
  1. +15
    -0
      src/Discord.Net.Rest/API/Rest/ModifyGuildApplicationCommandPermissionsParams.cs
  2. +1
    -1
      src/Discord.Net.Rest/DiscordRestApiClient.cs
  3. +9
    -4
      src/Discord.Net.Rest/Entities/Interactions/InteractionHelper.cs

+ 15
- 0
src/Discord.Net.Rest/API/Rest/ModifyGuildApplicationCommandPermissionsParams.cs View File

@@ -0,0 +1,15 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Discord.API.Rest
{
internal class ModifyGuildApplicationCommandPermissionsParams
{
[JsonProperty("permissions")]
public ApplicationCommandPermissions[] Permissions { get; set; }
}
}

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

@@ -1004,7 +1004,7 @@ namespace Discord.API
return await SendAsync<GuildApplicationCommandPermission>("GET", () => $"applications/{this.CurrentUserId}/guilds/{guildId}/commands/{commandId}/permissions", new BucketIds(), options: options).ConfigureAwait(false);
}

public async Task<GuildApplicationCommandPermission> ModifyApplicationCommandPermissions(ApplicationCommandPermissions[] permissions, ulong guildId, ulong commandId, RequestOptions options = null)
public async Task<GuildApplicationCommandPermission> ModifyApplicationCommandPermissions(ModifyGuildApplicationCommandPermissionsParams permissions, ulong guildId, ulong commandId, RequestOptions options = null)
{
Preconditions.NotEqual(guildId, 0, nameof(guildId));
Preconditions.NotEqual(commandId, 0, nameof(commandId));


+ 9
- 4
src/Discord.Net.Rest/Entities/Interactions/InteractionHelper.cs View File

@@ -377,21 +377,26 @@ namespace Discord.Rest
Preconditions.AtMost(args.Length, 10, nameof(args));
Preconditions.GreaterThan(args.Length, 0, nameof(args));

List<ApplicationCommandPermissions> models = new List<ApplicationCommandPermissions>();
List<ApplicationCommandPermissions> permissionsList = new List<ApplicationCommandPermissions>();

foreach (var arg in args)
{
var model = new ApplicationCommandPermissions()
var permissions = new ApplicationCommandPermissions()
{
Id = arg.TargetId,
Permission = arg.Permission,
Type = arg.TargetType
};

models.Add(model);
permissionsList.Add(permissions);
}

var apiModel = await client.ApiClient.ModifyApplicationCommandPermissions(models.ToArray(), guildId, commandId, options);
ModifyGuildApplicationCommandPermissionsParams model = new ModifyGuildApplicationCommandPermissionsParams()
{
Permissions = permissionsList.ToArray()
};

var apiModel = await client.ApiClient.ModifyApplicationCommandPermissions(model, guildId, commandId, options);

return new GuildApplicationCommandPermission(apiModel.Id, apiModel.ApplicationId, guildId, apiModel.Permissions.Select(
x => new ApplicationCommandPermission(x.Id, x.Type, x.Permission)).ToArray());


Loading…
Cancel
Save