osu/osu.Game/Online/API/Requests/Responses/APIKudosuHistory.cs

63 lines
1.6 KiB
C#
Raw Normal View History

2019-08-09 07:47:52 +00:00
// 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;
2019-08-18 18:27:53 +00:00
using Humanizer;
2019-08-09 07:47:52 +00:00
using Newtonsoft.Json;
namespace osu.Game.Online.API.Requests.Responses
{
public class APIKudosuHistory
{
2019-08-09 08:19:14 +00:00
[JsonProperty("created_at")]
2019-08-09 07:47:52 +00:00
public DateTimeOffset CreatedAt;
[JsonProperty("amount")]
2019-08-18 18:27:53 +00:00
private int amount
{
2019-08-27 12:36:08 +00:00
//We can receive negative values. However "action" is enough to build needed items
2019-08-18 18:27:53 +00:00
set => Amount = Math.Abs(value);
}
2019-08-09 07:47:52 +00:00
public int Amount;
2019-08-18 18:27:53 +00:00
[JsonProperty("post")]
public ModdingPost Post;
public class ModdingPost
{
[JsonProperty("url")]
public string Url;
[JsonProperty("title")]
public string Title;
}
[JsonProperty("giver")]
public KudosuGiver Giver;
public class KudosuGiver
{
[JsonProperty("url")]
public string Url;
[JsonProperty("username")]
public string Username;
}
[JsonProperty("action")]
private string action
{
set
{
2019-08-27 12:36:08 +00:00
//We will receive something like "foo.bar" or just "foo"
2019-08-18 18:27:53 +00:00
string parsed = value.Contains(".") ? value.Split('.')[0].Pascalize() + value.Split('.')[1].Pascalize() : value.Pascalize();
Action = (KudosuAction)Enum.Parse(typeof(KudosuAction), parsed);
}
}
public KudosuAction Action;
2019-08-09 07:47:52 +00:00
}
}