43 lines
1.6 KiB
C#
43 lines
1.6 KiB
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace SfeduSchedule.Plugin.UniVerse;
|
|
|
|
public sealed record UniverseUserLookupResult(
|
|
UniverseUserLookupStatus Status,
|
|
string? SubId = null,
|
|
string? ErrorMessage = null)
|
|
{
|
|
public static UniverseUserLookupResult Found(string subId) =>
|
|
new(UniverseUserLookupStatus.Found, subId);
|
|
|
|
public static UniverseUserLookupResult NotFound() =>
|
|
new(UniverseUserLookupStatus.NotFound);
|
|
|
|
public static UniverseUserLookupResult UpstreamError(string message) =>
|
|
new(UniverseUserLookupStatus.UpstreamError, ErrorMessage: message);
|
|
}
|
|
|
|
internal sealed record UniverseUsersGraphQlRequest(
|
|
[property: JsonPropertyName("query")] string Query,
|
|
[property: JsonPropertyName("variables")] UniverseUsersGraphQlVariables Variables);
|
|
|
|
internal sealed record UniverseUsersGraphQlVariables(
|
|
[property: JsonPropertyName("t")] string Text);
|
|
|
|
internal sealed record UniverseUsersGraphQlResponse(
|
|
[property: JsonPropertyName("data")] UniverseUsersGraphQlData? Data,
|
|
[property: JsonPropertyName("errors")] IReadOnlyList<JsonElement>? Errors);
|
|
|
|
internal sealed record UniverseUsersGraphQlData(
|
|
[property: JsonPropertyName("users")] UniverseUsersConnection? Users);
|
|
|
|
internal sealed record UniverseUsersConnection(
|
|
[property: JsonPropertyName("items")] IReadOnlyList<UniverseUserItem> Items);
|
|
|
|
internal sealed record UniverseUserItem(
|
|
[property: JsonPropertyName("id")] string? Id,
|
|
[property: JsonPropertyName("name")] string? Name,
|
|
[property: JsonPropertyName("displayName")] string? DisplayName,
|
|
[property: JsonPropertyName("description")] string? Description);
|