Browse Source

Mark partial InviteMetadata members as Optional<T>

* Some of them aren't sent when requesting through the general GET invite endpoint
pull/1094/head
Still Hsu 7 years ago
parent
commit
f8b9dbc0ab
No known key found for this signature in database GPG Key ID: 8601A145FDA95209
3 changed files with 17 additions and 17 deletions
  1. +4
    -4
      src/Discord.Net.Core/Entities/Invites/IInviteMetadata.cs
  2. +5
    -5
      src/Discord.Net.Rest/API/Common/InviteMetadata.cs
  3. +8
    -8
      src/Discord.Net.Rest/Entities/Invites/RestInviteMetadata.cs

+ 4
- 4
src/Discord.Net.Core/Entities/Invites/IInviteMetadata.cs View File

@@ -1,4 +1,4 @@
using System;
using System;


namespace Discord namespace Discord
{ {
@@ -15,8 +15,8 @@ namespace Discord
/// <summary> Gets the max amount of times this invite may be used, or null if there is no limit. </summary> /// <summary> Gets the max amount of times this invite may be used, or null if there is no limit. </summary>
int? MaxUses { get; } int? MaxUses { get; }
/// <summary> Gets the amount of times this invite has been used. </summary> /// <summary> Gets the amount of times this invite has been used. </summary>
int Uses { get; }
int? Uses { get; }
/// <summary> Gets when this invite was created. </summary> /// <summary> Gets when this invite was created. </summary>
DateTimeOffset CreatedAt { get; }
DateTimeOffset? CreatedAt { get; }
} }
}
}

+ 5
- 5
src/Discord.Net.Rest/API/Common/InviteMetadata.cs View File

@@ -1,4 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable CS1591
using Newtonsoft.Json; using Newtonsoft.Json;
using System; using System;


@@ -9,15 +9,15 @@ namespace Discord.API
[JsonProperty("inviter")] [JsonProperty("inviter")]
public User Inviter { get; set; } public User Inviter { get; set; }
[JsonProperty("uses")] [JsonProperty("uses")]
public int Uses { get; set; }
public Optional<int> Uses { get; set; }
[JsonProperty("max_uses")] [JsonProperty("max_uses")]
public int MaxUses { get; set; }
public Optional<int> MaxUses { get; set; }
[JsonProperty("max_age")] [JsonProperty("max_age")]
public int MaxAge { get; set; }
public Optional<int> MaxAge { get; set; }
[JsonProperty("temporary")] [JsonProperty("temporary")]
public bool Temporary { get; set; } public bool Temporary { get; set; }
[JsonProperty("created_at")] [JsonProperty("created_at")]
public DateTimeOffset CreatedAt { get; set; }
public Optional<DateTimeOffset> CreatedAt { get; set; }
[JsonProperty("revoked")] [JsonProperty("revoked")]
public bool Revoked { get; set; } public bool Revoked { get; set; }
} }


+ 8
- 8
src/Discord.Net.Rest/Entities/Invites/RestInviteMetadata.cs View File

@@ -1,20 +1,20 @@
using System;
using System;
using Model = Discord.API.InviteMetadata; using Model = Discord.API.InviteMetadata;


namespace Discord.Rest namespace Discord.Rest
{ {
public class RestInviteMetadata : RestInvite, IInviteMetadata public class RestInviteMetadata : RestInvite, IInviteMetadata
{ {
private long _createdAtTicks;
private long? _createdAtTicks;


public bool IsRevoked { get; private set; } public bool IsRevoked { get; private set; }
public bool IsTemporary { get; private set; } public bool IsTemporary { get; private set; }
public int? MaxAge { get; private set; } public int? MaxAge { get; private set; }
public int? MaxUses { get; private set; } public int? MaxUses { get; private set; }
public int Uses { get; private set; }
public int? Uses { get; private set; }
public RestUser Inviter { get; private set; } public RestUser Inviter { get; private set; }


public DateTimeOffset CreatedAt => DateTimeUtils.FromTicks(_createdAtTicks);
public DateTimeOffset? CreatedAt => DateTimeUtils.FromTicks(_createdAtTicks);


internal RestInviteMetadata(BaseDiscordClient discord, IGuild guild, IChannel channel, string id) internal RestInviteMetadata(BaseDiscordClient discord, IGuild guild, IChannel channel, string id)
: base(discord, guild, channel, id) : base(discord, guild, channel, id)
@@ -32,10 +32,10 @@ namespace Discord.Rest
Inviter = model.Inviter != null ? RestUser.Create(Discord, model.Inviter) : null; Inviter = model.Inviter != null ? RestUser.Create(Discord, model.Inviter) : null;
IsRevoked = model.Revoked; IsRevoked = model.Revoked;
IsTemporary = model.Temporary; IsTemporary = model.Temporary;
MaxAge = model.MaxAge != 0 ? model.MaxAge : (int?)null;
MaxUses = model.MaxUses;
Uses = model.Uses;
_createdAtTicks = model.CreatedAt.UtcTicks;
MaxAge = model.MaxAge.IsSpecified ? model.MaxAge.Value : (int?)null;
MaxUses = model.MaxUses.IsSpecified ? model.MaxUses.Value : (int?)null;
Uses = model.Uses.IsSpecified ? model.Uses.Value : (int?)null;
_createdAtTicks = model.CreatedAt.IsSpecified ? model.CreatedAt.Value.UtcTicks : (long?)null;
} }


IUser IInviteMetadata.Inviter => Inviter; IUser IInviteMetadata.Inviter => Inviter;


Loading…
Cancel
Save