Browse Source

models & internal methods

pull/2530/head
Misha133 2 years ago
parent
commit
d595c6dff8
4 changed files with 118 additions and 0 deletions
  1. +29
    -0
      src/Discord.Net.Core/Entities/ApplicationRoleConnection/RoleConnectionMetadata.cs
  2. +49
    -0
      src/Discord.Net.Core/Entities/ApplicationRoleConnection/RoleConnectionMetadataType.cs
  3. +25
    -0
      src/Discord.Net.Rest/API/Common/RoleConnectionMetadata.cs
  4. +15
    -0
      src/Discord.Net.Rest/DiscordRestApiClient.cs

+ 29
- 0
src/Discord.Net.Core/Entities/ApplicationRoleConnection/RoleConnectionMetadata.cs View File

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

namespace Discord;

public class RoleConnectionMetadata
{
public RoleConnectionMetadataType Type { get; }

public string Key { get; }

public string Name{ get; }

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

public string Description { get; }

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

internal RoleConnectionMetadata(RoleConnectionMetadataType type, string key, string name, string description,
Dictionary<string, string> nameLocalizations = null, Dictionary<string, string> descriptionLocalizations = null)
{
Type = type;
Key = key;
Name = name;
Description = description;
NameLocalizations = nameLocalizations;
DescriptionLocalizations = descriptionLocalizations;
}
}

+ 49
- 0
src/Discord.Net.Core/Entities/ApplicationRoleConnection/RoleConnectionMetadataType.cs View File

@@ -0,0 +1,49 @@
using System;

namespace Discord;

/// <summary>
/// Represents the type of Application Role Connection Metadata
/// </summary>
public enum RoleConnectionMetadataType
{
/// <summary>
/// The metadata's integer value is less than or equal to the guild's configured value
/// </summary>
IntegerLessOrEqual = 1,

/// <summary>
/// The metadata's integer value is greater than or equal to the guild's configured value
/// </summary>
IntegerGreaterOrEqual = 2,

/// <summary>
/// The metadata's integer value is equal to the guild's configured value
/// </summary>
IntegerEqual = 3,

/// <summary>
/// The metadata's integer value is not equal to the guild's configured value
/// </summary>
IntegerNotEqual = 4,

/// <summary>
/// The metadata's ISO8601 string value is less or equal to the guild's configured value
/// </summary>
DateTimeLessOrEqual = 5,

/// <summary>
/// The metadata's ISO8601 string value is greater to the guild's configured value
/// </summary>
DateTimeGreaterOrEqual = 6,

/// <summary>
/// The metadata's integer value is equal to the guild's configured value
/// </summary>
BoolEqual = 7,

/// <summary>
/// The metadata's integer value is equal to the guild's configured value
/// </summary>
BoolNotEqual = 8,
}

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

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

namespace Discord.API;

public class RoleConnectionMetadata
{
[JsonProperty("type")]
public RoleConnectionMetadataType Type { get; set; }

[JsonProperty("key")]
public string Key { get; set; }

[JsonProperty("name")]
public string Name { get; set; }

[JsonProperty("description")]
public string Description { get; set; }

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

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

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

@@ -10,6 +10,7 @@ using System.Collections.Concurrent;
using System.Collections.Generic;
using System.ComponentModel.Design;
using System.Diagnostics;
using System.Diagnostics.Contracts;
using System.Globalization;
using System.IO;
using System.Linq;
@@ -2476,5 +2477,19 @@ namespace Discord.API
}

#endregion

#region Application Role Connections Metadata

public async Task<IEnumerable<RoleConnectionMetadata>> GetApplicationRoleConnectionMetadataRecordsAsync(RequestOptions options = null)
{
return await SendAsync<IEnumerable<RoleConnectionMetadata>>("GET", $"/applications/{CurrentApplicationId}/role-connections/metadata", options: options).ConfigureAwait(false);
}

public async Task<IEnumerable<RoleConnectionMetadata>> UpdateApplicationRoleConnectionMetadataRecordsAsync(IEnumerable<RoleConnectionMetadata> roleConnections, RequestOptions options = null)
{
return await SendJsonAsync<IEnumerable<RoleConnectionMetadata>>("PUT", $"/applications/{CurrentApplicationId}/role-connections/metadata", roleConnections, options: options).ConfigureAwait(false);
}

#endregion
}
}

Loading…
Cancel
Save