diff --git a/src/StreamElements.Net/AuthRestClient.cs b/src/StreamElements.Net/AuthRestClient.cs index f964eae..80863e3 100644 --- a/src/StreamElements.Net/AuthRestClient.cs +++ b/src/StreamElements.Net/AuthRestClient.cs @@ -191,8 +191,10 @@ namespace StreamElements.Net } return this.AuthClient.UpdateChatStatsSettings(statsistics); } - - + public Task GetLoyalty() + { + return this.AuthClient.GetLoyalties(); + } public override T BuildHttpClient(string pathSegment = null) { var builder = new UriBuilder("https://api.streamelements.com/kappa/v1"); diff --git a/src/StreamElements.Net/Models/Loyalties.cs b/src/StreamElements.Net/Models/Loyalties.cs new file mode 100644 index 0000000..0cc6159 --- /dev/null +++ b/src/StreamElements.Net/Models/Loyalties.cs @@ -0,0 +1,7 @@ +namespace StreamElements.Net.Models +{ + public class Loyalties + { + + } +} \ No newline at end of file diff --git a/src/StreamElements.Net/Models/Loyalty.cs b/src/StreamElements.Net/Models/Loyalty.cs new file mode 100644 index 0000000..27e1cc9 --- /dev/null +++ b/src/StreamElements.Net/Models/Loyalty.cs @@ -0,0 +1,39 @@ +using Newtonsoft.Json; + +namespace StreamElements.Net.Models +{ + public class Bonuses + { + + [JsonProperty("cheer")] + public int Cheer { get; set; } + + [JsonProperty("subscriber")] + public int Subscriber { get; set; } + + [JsonProperty("tip")] + public int Tip { get; set; } + + [JsonProperty("follow")] + public int Follow { get; set; } + } + + public class Loyalty + { + + [JsonProperty("bonuses")] + public Bonuses Bonuses { get; set; } + + [JsonProperty("subscriberMultiplier")] + public int SubscriberMultiplier { get; set; } + + [JsonProperty("amount")] + public int Amount { get; set; } + + [JsonProperty("enabled")] + public bool Enabled { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/src/StreamElements.Net/Models/Results/LoyaltyResult.cs b/src/StreamElements.Net/Models/Results/LoyaltyResult.cs new file mode 100644 index 0000000..47ff836 --- /dev/null +++ b/src/StreamElements.Net/Models/Results/LoyaltyResult.cs @@ -0,0 +1,12 @@ +using System; + +namespace StreamElements.Net.Models.Results +{ + public class LoyaltyResult : Loyalty, IStreamElementsResult + { + public DateTime UpdatedAt { get; set; } + public DateTime CreatedAt { get; set; } + public string User { get; set; } + public string Username { get; set; } + } +} \ No newline at end of file diff --git a/src/StreamElements.Net/Rest/IAuthenticatedStreamElementsApi.cs b/src/StreamElements.Net/Rest/IAuthenticatedStreamElementsApi.cs index dd4a5b1..477ea0a 100644 --- a/src/StreamElements.Net/Rest/IAuthenticatedStreamElementsApi.cs +++ b/src/StreamElements.Net/Rest/IAuthenticatedStreamElementsApi.cs @@ -37,5 +37,8 @@ namespace StreamElements.Net.Rest [Put("/chatstats")] Task UpdateChatStatsSettings(ChatStatistics stats); + + [Get("/loyalties")] + Task GetLoyalties(); } } \ No newline at end of file diff --git a/src/StreamElements.Net/Rest/IStreamElementsClient.cs b/src/StreamElements.Net/Rest/IStreamElementsClient.cs index 92fa332..65fd140 100644 --- a/src/StreamElements.Net/Rest/IStreamElementsClient.cs +++ b/src/StreamElements.Net/Rest/IStreamElementsClient.cs @@ -11,5 +11,8 @@ namespace StreamElements.Net.Rest [Get("/chatstats/stats/{channel}")] Task GetChatStats(string channel); + + [Get("/loyalties/{channel}")] + Task GetLoyalties(string channel); } } \ No newline at end of file diff --git a/src/StreamElements.Net/RestClient.cs b/src/StreamElements.Net/RestClient.cs index 8ded7cb..8939ab4 100644 --- a/src/StreamElements.Net/RestClient.cs +++ b/src/StreamElements.Net/RestClient.cs @@ -32,6 +32,14 @@ namespace StreamElements.Net } return Client.GetChatStats(channel); } + public Task GetLoyalty(string channel) + { + if(string.IsNullOrWhiteSpace(nameof(channel))) + { + throw new ArgumentNullException(nameof(channel)); + } + return this.Client.GetLoyalties(channel); + } public virtual T BuildHttpClient(string pathSegment = null) { var builder = new UriBuilder("https://api.streamelements.com/kappa/v1");