Browse Source

feature: Add invite maxAge check before attempting to create the invite (#1140)

* Add maxage check & improve maxage parameter check

* Change InvalidOperation to ArgumentOoR

* Remove HasValue check
...since it does it implicitly already.

* Add parameter names & better wording for invite OoR

* Move maxAge check to DiscordRestApiClient for consistency
tags/2.0
Still Hsu Christopher F 6 years ago
parent
commit
649a779c23
2 changed files with 9 additions and 3 deletions
  1. +2
    -0
      src/Discord.Net.Rest/DiscordRestApiClient.cs
  2. +7
    -3
      src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs

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

@@ -978,6 +978,8 @@ namespace Discord.API
Preconditions.NotNull(args, nameof(args));
Preconditions.AtLeast(args.MaxAge, 0, nameof(args.MaxAge));
Preconditions.AtLeast(args.MaxUses, 0, nameof(args.MaxUses));
Preconditions.AtMost(args.MaxAge, 86400, nameof(args.MaxAge),
"The maximum age of an invite must be less than or equal to a day (86400 seconds).");
options = RequestOptions.CreateOrClone(options);

var ids = new BucketIds(channelId: channelId);


+ 7
- 3
src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs View File

@@ -76,9 +76,13 @@ namespace Discord.Rest
public static async Task<RestInviteMetadata> CreateInviteAsync(IGuildChannel channel, BaseDiscordClient client,
int? maxAge, int? maxUses, bool isTemporary, bool isUnique, RequestOptions options)
{
var args = new CreateChannelInviteParams { IsTemporary = isTemporary, IsUnique = isUnique };
args.MaxAge = maxAge.GetValueOrDefault(0);
args.MaxUses = maxUses.GetValueOrDefault(0);
var args = new API.Rest.CreateChannelInviteParams
{
IsTemporary = isTemporary,
IsUnique = isUnique,
MaxAge = maxAge ?? 0,
MaxUses = maxUses ?? 0
};
var model = await client.ApiClient.CreateChannelInviteAsync(channel.Id, args, options).ConfigureAwait(false);
return RestInviteMetadata.Create(client, null, channel, model);
}


Loading…
Cancel
Save