Browse Source

moar stuff

pull/2530/head
Misha133 2 years ago
parent
commit
8780a057b0
5 changed files with 61 additions and 6 deletions
  1. +28
    -0
      src/Discord.Net.Core/Entities/ApplicationRoleConnection/RoleConnection.cs
  2. +5
    -4
      src/Discord.Net.Core/Entities/ApplicationRoleConnection/RoleConnectionMetadata.cs
  3. +16
    -0
      src/Discord.Net.Rest/API/Common/RoleConnection.cs
  4. +2
    -2
      src/Discord.Net.Rest/API/Common/RoleConnectionMetadata.cs
  5. +10
    -0
      src/Discord.Net.Rest/DiscordRestApiClient.cs

+ 28
- 0
src/Discord.Net.Core/Entities/ApplicationRoleConnection/RoleConnection.cs View File

@@ -0,0 +1,28 @@
using System.Collections.Generic;

namespace Discord;

public class RoleConnection
{
/// <summary>
/// Gets the vanity name of the platform a bot has connected.
/// </summary>
public string PlatformName { get; }

/// <summary>
/// Gets the username on the platform a bot has connected.
/// </summary>
public string PlatformUsername { get; }

/// <summary>
///
/// </summary>
public IReadOnlyDictionary<string, object> Metadata { get; }

internal RoleConnection(string platformName, string platformUsername, IReadOnlyDictionary<string, object> metadata)
{
PlatformName = platformName;
PlatformUsername = platformUsername;
Metadata = metadata;
}
}

+ 5
- 4
src/Discord.Net.Core/Entities/ApplicationRoleConnection/RoleConnectionMetadata.cs View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Collections.Immutable;

namespace Discord;

@@ -10,11 +11,11 @@ public class RoleConnectionMetadata

public string Name{ get; }

public Optional<Dictionary<string, string>> NameLocalizations { get; }
public Optional<IReadOnlyDictionary<string, string>> NameLocalizations { get; }

public string Description { get; }

public Optional<Dictionary<string, string>> DescriptionLocalizations { get; }
public Optional<IReadOnlyDictionary<string, string>> DescriptionLocalizations { get; }

internal RoleConnectionMetadata(RoleConnectionMetadataType type, string key, string name, string description,
Dictionary<string, string> nameLocalizations = null, Dictionary<string, string> descriptionLocalizations = null)
@@ -23,7 +24,7 @@ public class RoleConnectionMetadata
Key = key;
Name = name;
Description = description;
NameLocalizations = nameLocalizations;
DescriptionLocalizations = descriptionLocalizations;
NameLocalizations = nameLocalizations.ToImmutableDictionary();
DescriptionLocalizations = descriptionLocalizations.ToImmutableDictionary();
}
}

+ 16
- 0
src/Discord.Net.Rest/API/Common/RoleConnection.cs View File

@@ -0,0 +1,16 @@
using Newtonsoft.Json;
using System.Collections.Generic;

namespace Discord.API;

public class RoleConnection
{
[JsonProperty("platform_name")]
public Optional<string> PlatformName { get; set; }

[JsonProperty("platform_username")]
public Optional<string> PlatformUsername { get; set; }

[JsonProperty("metadata")]
public Optional<Dictionary<string, string>> Metadata { get; set; }
}

+ 2
- 2
src/Discord.Net.Rest/API/Common/RoleConnectionMetadata.cs View File

@@ -18,8 +18,8 @@ public class RoleConnectionMetadata
public string Description { get; set; }

[JsonProperty("name_localizations")]
public Optional<IEnumerable<KeyValuePair<string, string>>> NameLocalizations { get; set; }
public Optional<IReadOnlyCollection<KeyValuePair<string, string>>> NameLocalizations { get; set; }

[JsonProperty("description_localizations")]
public Optional<IEnumerable<KeyValuePair<string, string>>> DescriptionLocalizations { get; set; }
public Optional<IReadOnlyCollection<KeyValuePair<string, string>>> DescriptionLocalizations { get; set; }
}

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

@@ -2490,6 +2490,16 @@ namespace Discord.API
return await SendJsonAsync<IEnumerable<RoleConnectionMetadata>>("PUT", $"/applications/{CurrentApplicationId}/role-connections/metadata", roleConnections, options: options).ConfigureAwait(false);
}

public async Task<RoleConnection> GetUserApplicationRoleConnection(RequestOptions options = null)
{
return await SendAsync<RoleConnection>("GET", $"/users/@me/applications/{CurrentApplicationId}/role-connection", options: options);
}

public async Task<RoleConnection> GetUserApplicationRoleConnection(RoleConnection connection, RequestOptions options = null)
{
return await SendJsonAsync<RoleConnection>("PUT", $"/users/@me/applications/{CurrentApplicationId}/role-connection", connection, options: options);
}

#endregion
}
}

Loading…
Cancel
Save