mirror of
https://github.com/ppy/osu.git
synced 2025-01-13 15:52:54 +08:00
Split out web response classes into own files
This commit is contained in:
parent
27ca094421
commit
8ecd1912e1
@ -27,7 +27,7 @@ namespace osu.Game.Tests.Visual
|
||||
changelog.FetchAndShowBuild(new APIChangelogBuild
|
||||
{
|
||||
Version = "2018.712.0",
|
||||
UpdateStream = new UpdateStream { Name = "lazer" },
|
||||
UpdateStream = new APIUpdateStream { Name = "lazer" },
|
||||
});
|
||||
changelog.Show();
|
||||
});
|
||||
|
@ -25,99 +25,21 @@ namespace osu.Game.Online.API.Requests.Responses
|
||||
public DateTimeOffset CreatedAt { get; set; }
|
||||
|
||||
[JsonProperty("update_stream")]
|
||||
public UpdateStream UpdateStream { get; set; }
|
||||
public APIUpdateStream UpdateStream { get; set; }
|
||||
|
||||
[JsonProperty("changelog_entries")]
|
||||
public List<ChangelogEntry> ChangelogEntries { get; set; }
|
||||
public List<APIChangelogEntry> ChangelogEntries { get; set; }
|
||||
|
||||
[JsonProperty("versions")]
|
||||
public Versions Versions { get; set; }
|
||||
}
|
||||
public VersionNativation Versions { get; set; }
|
||||
|
||||
public class Versions
|
||||
{
|
||||
[JsonProperty("next")]
|
||||
public APIChangelogBuild Next { get; set; }
|
||||
public class VersionNativation
|
||||
{
|
||||
[JsonProperty("next")]
|
||||
public APIChangelogBuild Next { get; set; }
|
||||
|
||||
[JsonProperty("previous")]
|
||||
public APIChangelogBuild Previous { get; set; }
|
||||
}
|
||||
|
||||
public class ChangelogEntry
|
||||
{
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
|
||||
[JsonProperty("repository")]
|
||||
public string Repository { get; set; }
|
||||
|
||||
[JsonProperty("github_pull_request_id")]
|
||||
public long? GithubPullRequestId { get; set; }
|
||||
|
||||
[JsonProperty("github_url")]
|
||||
public string GithubUrl { get; set; }
|
||||
|
||||
[JsonProperty("url")]
|
||||
public string Url { get; set; }
|
||||
|
||||
[JsonProperty("type")]
|
||||
public string Type { get; set; }
|
||||
|
||||
[JsonProperty("category")]
|
||||
public string Category { get; set; }
|
||||
|
||||
[JsonProperty("title")]
|
||||
public string Title { get; set; }
|
||||
|
||||
[JsonProperty("message_html")]
|
||||
public string MessageHtml { get; set; }
|
||||
|
||||
[JsonProperty("major")]
|
||||
public bool? Major { get; set; }
|
||||
|
||||
[JsonProperty("created_at")]
|
||||
public DateTimeOffset? CreatedAt { get; set; }
|
||||
|
||||
[JsonProperty("github_user")]
|
||||
public GithubUser GithubUser { get; set; }
|
||||
}
|
||||
|
||||
public class GithubUser
|
||||
{
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
|
||||
[JsonProperty("display_name")]
|
||||
public string DisplayName { get; set; }
|
||||
|
||||
[JsonProperty("github_url")]
|
||||
public string GithubUrl { get; set; }
|
||||
|
||||
[JsonProperty("osu_username")]
|
||||
public string OsuUsername { get; set; }
|
||||
|
||||
[JsonProperty("user_id")]
|
||||
public long? UserId { get; set; }
|
||||
|
||||
[JsonProperty("user_url")]
|
||||
public string UserUrl { get; set; }
|
||||
}
|
||||
|
||||
public class UpdateStream
|
||||
{
|
||||
[JsonProperty("id")]
|
||||
public long Id { get; set; }
|
||||
|
||||
[JsonProperty("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[JsonProperty("is_featured")]
|
||||
public bool IsFeatured { get; set; }
|
||||
|
||||
[JsonProperty("display_name")]
|
||||
public string DisplayName { get; set; }
|
||||
|
||||
[JsonProperty("latest_build")]
|
||||
public APIChangelogBuild LatestBuild { get; set; }
|
||||
[JsonProperty("previous")]
|
||||
public APIChangelogBuild Previous { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
47
osu.Game/Online/API/Requests/Responses/APIChangelogEntry.cs
Normal file
47
osu.Game/Online/API/Requests/Responses/APIChangelogEntry.cs
Normal file
@ -0,0 +1,47 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace osu.Game.Online.API.Requests.Responses
|
||||
{
|
||||
public class APIChangelogEntry
|
||||
{
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
|
||||
[JsonProperty("repository")]
|
||||
public string Repository { get; set; }
|
||||
|
||||
[JsonProperty("github_pull_request_id")]
|
||||
public long? GithubPullRequestId { get; set; }
|
||||
|
||||
[JsonProperty("github_url")]
|
||||
public string GithubUrl { get; set; }
|
||||
|
||||
[JsonProperty("url")]
|
||||
public string Url { get; set; }
|
||||
|
||||
[JsonProperty("type")]
|
||||
public string Type { get; set; }
|
||||
|
||||
[JsonProperty("category")]
|
||||
public string Category { get; set; }
|
||||
|
||||
[JsonProperty("title")]
|
||||
public string Title { get; set; }
|
||||
|
||||
[JsonProperty("message_html")]
|
||||
public string MessageHtml { get; set; }
|
||||
|
||||
[JsonProperty("major")]
|
||||
public bool? Major { get; set; }
|
||||
|
||||
[JsonProperty("created_at")]
|
||||
public DateTimeOffset? CreatedAt { get; set; }
|
||||
|
||||
[JsonProperty("github_user")]
|
||||
public APIChangelogUser GithubUser { get; set; }
|
||||
}
|
||||
}
|
@ -9,6 +9,6 @@ namespace osu.Game.Online.API.Requests.Responses
|
||||
{
|
||||
public List<APIChangelogBuild> Builds;
|
||||
|
||||
public List<UpdateStream> Streams;
|
||||
public List<APIUpdateStream> Streams;
|
||||
}
|
||||
}
|
||||
|
28
osu.Game/Online/API/Requests/Responses/APIChangelogUser.cs
Normal file
28
osu.Game/Online/API/Requests/Responses/APIChangelogUser.cs
Normal file
@ -0,0 +1,28 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace osu.Game.Online.API.Requests.Responses
|
||||
{
|
||||
public class APIChangelogUser
|
||||
{
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
|
||||
[JsonProperty("display_name")]
|
||||
public string DisplayName { get; set; }
|
||||
|
||||
[JsonProperty("github_url")]
|
||||
public string GithubUrl { get; set; }
|
||||
|
||||
[JsonProperty("osu_username")]
|
||||
public string OsuUsername { get; set; }
|
||||
|
||||
[JsonProperty("user_id")]
|
||||
public long? UserId { get; set; }
|
||||
|
||||
[JsonProperty("user_url")]
|
||||
public string UserUrl { get; set; }
|
||||
}
|
||||
}
|
25
osu.Game/Online/API/Requests/Responses/APIUpdateStream.cs
Normal file
25
osu.Game/Online/API/Requests/Responses/APIUpdateStream.cs
Normal file
@ -0,0 +1,25 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace osu.Game.Online.API.Requests.Responses
|
||||
{
|
||||
public class APIUpdateStream
|
||||
{
|
||||
[JsonProperty("id")]
|
||||
public long Id { get; set; }
|
||||
|
||||
[JsonProperty("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[JsonProperty("is_featured")]
|
||||
public bool IsFeatured { get; set; }
|
||||
|
||||
[JsonProperty("display_name")]
|
||||
public string DisplayName { get; set; }
|
||||
|
||||
[JsonProperty("latest_build")]
|
||||
public APIChangelogBuild LatestBuild { get; set; }
|
||||
}
|
||||
}
|
@ -45,9 +45,9 @@ namespace osu.Game.Overlays.Changelog
|
||||
};
|
||||
}
|
||||
|
||||
public void Populate(List<UpdateStream> streams)
|
||||
public void Populate(List<APIUpdateStream> streams)
|
||||
{
|
||||
foreach (UpdateStream updateStream in streams)
|
||||
foreach (APIUpdateStream updateStream in streams)
|
||||
{
|
||||
var streamBadge = new StreamBadge(updateStream);
|
||||
streamBadge.Selected += onBadgeSelected;
|
||||
|
@ -19,8 +19,8 @@ namespace osu.Game.Overlays.Changelog
|
||||
{
|
||||
private readonly TooltipIconButton chevronPrevious, chevronNext;
|
||||
|
||||
private readonly SortedDictionary<string, List<ChangelogEntry>> categories =
|
||||
new SortedDictionary<string, List<ChangelogEntry>>();
|
||||
private readonly SortedDictionary<string, List<APIChangelogEntry>> categories =
|
||||
new SortedDictionary<string, List<APIChangelogEntry>>();
|
||||
|
||||
public delegate void BuildSelectedEventHandler(APIChangelogBuild build, EventArgs args);
|
||||
|
||||
@ -204,18 +204,18 @@ namespace osu.Game.Overlays.Changelog
|
||||
BuildSelected?.Invoke(build, EventArgs.Empty);
|
||||
}
|
||||
|
||||
public void GenerateText(List<ChangelogEntry> changelogEntries)
|
||||
public void GenerateText(List<APIChangelogEntry> changelogEntries)
|
||||
{
|
||||
// sort entries by category
|
||||
foreach (ChangelogEntry entry in changelogEntries)
|
||||
foreach (APIChangelogEntry entry in changelogEntries)
|
||||
{
|
||||
if (!categories.ContainsKey(entry.Category))
|
||||
categories.Add(entry.Category, new List<ChangelogEntry> { entry });
|
||||
categories.Add(entry.Category, new List<APIChangelogEntry> { entry });
|
||||
else
|
||||
categories[entry.Category].Add(entry);
|
||||
}
|
||||
|
||||
foreach (KeyValuePair<string, List<ChangelogEntry>> category in categories)
|
||||
foreach (KeyValuePair<string, List<APIChangelogEntry>> category in categories)
|
||||
{
|
||||
ChangelogEntries.Add(new SpriteText
|
||||
{
|
||||
@ -224,7 +224,7 @@ namespace osu.Game.Overlays.Changelog
|
||||
Margin = new MarginPadding { Top = 35, Bottom = 15 },
|
||||
});
|
||||
|
||||
foreach (ChangelogEntry entry in category.Value)
|
||||
foreach (APIChangelogEntry entry in category.Value)
|
||||
{
|
||||
LinkFlowContainer title = new LinkFlowContainer
|
||||
{
|
||||
|
@ -32,11 +32,11 @@ namespace osu.Game.Overlays.Changelog
|
||||
private SampleChannel sampleClick;
|
||||
private SampleChannel sampleHover;
|
||||
|
||||
public readonly UpdateStream Stream;
|
||||
public readonly APIUpdateStream Stream;
|
||||
|
||||
private readonly FillFlowContainer<SpriteText> text;
|
||||
|
||||
public StreamBadge(UpdateStream stream)
|
||||
public StreamBadge(APIUpdateStream stream)
|
||||
{
|
||||
Stream = stream;
|
||||
|
||||
|
@ -189,8 +189,8 @@ namespace osu.Game.Overlays
|
||||
/// <summary>
|
||||
/// Fetches and shows a specific build from a specific update stream.
|
||||
/// </summary>
|
||||
/// <param name="build">Must contain at least <see cref="UpdateStream.Name"/> and
|
||||
/// <see cref="APIChangelogBuild.Version"/>. If <see cref="UpdateStream.DisplayName"/> and
|
||||
/// <param name="build">Must contain at least <see cref="APIUpdateStream.Name"/> and
|
||||
/// <see cref="APIChangelogBuild.Version"/>. If <see cref="APIUpdateStream.DisplayName"/> and
|
||||
/// <see cref="APIChangelogBuild.DisplayVersion"/> are specified, the header will instantly display them.</param>
|
||||
/// <param name="updateBadges">Whether to update badges. Should be set to false in case
|
||||
/// the function is called by selecting a badge, to avoid an infinite loop.</param>
|
||||
|
Loading…
Reference in New Issue
Block a user