add ApproximateUserAuthorizationCount (#3145)

This commit is contained in:
Mihail Gribkov
2025-06-12 00:41:44 +03:00
committed by GitHub
parent 1e5090012d
commit 6e1f9c1092
3 changed files with 18 additions and 6 deletions

View File

@@ -100,6 +100,11 @@ namespace Discord
/// </summary> /// </summary>
int? ApproximateUserInstallCount { get; } int? ApproximateUserInstallCount { get; }
/// <summary>
/// Gets the approximate count of the users who have authorized the application. <see langword="null" /> if not returned.
/// </summary>
int? ApproximateUserAuthorizationCount { get; }
/// <summary> /// <summary>
/// Gets the application's discoverability state. /// Gets the application's discoverability state.
/// </summary> /// </summary>

View File

@@ -41,6 +41,9 @@ internal class Application
[JsonProperty("approximate_user_install_count")] [JsonProperty("approximate_user_install_count")]
public Optional<int> ApproximateUserInstallCount { get; set; } public Optional<int> ApproximateUserInstallCount { get; set; }
[JsonProperty("approximate_user_authorization_count")]
public Optional<int> ApproximateUserAuthorizationCount { get; set; }
[JsonProperty("guild")] [JsonProperty("guild")]
public Optional<PartialGuild> PartialGuild { get; set; } public Optional<PartialGuild> PartialGuild { get; set; }

View File

@@ -58,6 +58,9 @@ public class RestApplication : RestEntity<ulong>, IApplication
/// <inheritdoc /> /// <inheritdoc />
public int? ApproximateUserInstallCount { get; private set; } public int? ApproximateUserInstallCount { get; private set; }
/// <inheritdoc />
public int? ApproximateUserAuthorizationCount { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
public IReadOnlyCollection<string> RedirectUris { get; private set; } public IReadOnlyCollection<string> RedirectUris { get; private set; }
@@ -122,7 +125,7 @@ public class RestApplication : RestEntity<ulong>, IApplication
internal void Update(Model model) internal void Update(Model model)
{ {
Description = model.Description; Description = model.Description;
RPCOrigins = model.RPCOrigins.IsSpecified ? model.RPCOrigins.Value.ToImmutableArray() : ImmutableArray<string>.Empty; RPCOrigins = model.RPCOrigins.IsSpecified ? [..model.RPCOrigins.Value] : ImmutableArray<string>.Empty;
Name = model.Name; Name = model.Name;
_iconId = model.Icon; _iconId = model.Icon;
IsBotPublic = model.IsBotPublic.IsSpecified ? model.IsBotPublic.Value : null; IsBotPublic = model.IsBotPublic.IsSpecified ? model.IsBotPublic.Value : null;
@@ -132,7 +135,7 @@ public class RestApplication : RestEntity<ulong>, IApplication
TermsOfService = model.TermsOfService; TermsOfService = model.TermsOfService;
InstallParams = model.InstallParams.IsSpecified InstallParams = model.InstallParams.IsSpecified
? new ApplicationInstallParams(model.InstallParams.Value.Scopes, (GuildPermission)model.InstallParams.Value.Permission) ? new ApplicationInstallParams(model.InstallParams.Value.Scopes, model.InstallParams.Value.Permission)
: null; : null;
if (model.Flags.IsSpecified) if (model.Flags.IsSpecified)
@@ -154,15 +157,16 @@ public class RestApplication : RestEntity<ulong>, IApplication
if (model.RedirectUris.IsSpecified) if (model.RedirectUris.IsSpecified)
RedirectUris = model.RedirectUris.Value.ToImmutableArray(); RedirectUris = model.RedirectUris.Value.ToImmutableArray();
ApproximateGuildCount = model.ApproximateGuildCount.IsSpecified ? model.ApproximateGuildCount.Value : null; ApproximateGuildCount = model.ApproximateGuildCount.ToNullable();
ApproximateUserInstallCount = model.ApproximateUserInstallCount.IsSpecified ? model.ApproximateUserInstallCount.Value : null; ApproximateUserInstallCount = model.ApproximateUserInstallCount.ToNullable();
ApproximateUserAuthorizationCount = model.ApproximateUserAuthorizationCount.ToNullable();
DiscoverabilityState = model.DiscoverabilityState.GetValueOrDefault(ApplicationDiscoverabilityState.None); DiscoverabilityState = model.DiscoverabilityState.GetValueOrDefault(ApplicationDiscoverabilityState.None);
DiscoveryEligibilityFlags = model.DiscoveryEligibilityFlags.GetValueOrDefault(DiscoveryEligibilityFlags.None); DiscoveryEligibilityFlags = model.DiscoveryEligibilityFlags.GetValueOrDefault(DiscoveryEligibilityFlags.None);
ExplicitContentFilterLevel = model.ExplicitContentFilter.GetValueOrDefault(ApplicationExplicitContentFilterLevel.Disabled); ExplicitContentFilterLevel = model.ExplicitContentFilter.GetValueOrDefault(ApplicationExplicitContentFilterLevel.Disabled);
IsHook = model.IsHook; IsHook = model.IsHook;
InteractionEventTypes = model.InteractionsEventTypes.GetValueOrDefault(Array.Empty<string>()).ToImmutableArray(); InteractionEventTypes = model.InteractionsEventTypes.GetValueOrDefault([]).ToImmutableArray();
InteractionsVersion = model.InteractionsVersion.GetValueOrDefault(ApplicationInteractionsVersion.Version1); InteractionsVersion = model.InteractionsVersion.GetValueOrDefault(ApplicationInteractionsVersion.Version1);
IsMonetized = model.IsMonetized; IsMonetized = model.IsMonetized;
@@ -178,7 +182,7 @@ public class RestApplication : RestEntity<ulong>, IApplication
{ {
foreach (var p in model.IntegrationTypesConfig.Value) foreach (var p in model.IntegrationTypesConfig.Value)
{ {
dict.Add(p.Key, new ApplicationInstallParams(p.Value.Scopes ?? Array.Empty<string>(), p.Value.Permission)); dict.Add(p.Key, new ApplicationInstallParams(p.Value.Scopes ?? [], p.Value.Permission));
} }
} }
IntegrationTypesConfig = dict.ToImmutableDictionary(); IntegrationTypesConfig = dict.ToImmutableDictionary();