using RestEase; using Skuld.Core.Models; using Skuld.Models; using System; using System.IO; using System.Threading.Tasks; namespace Skuld.API { public interface ISkuldAPIClient : IDisposable { #region Guild /// /// Get a guild /// /// Guild Id /// wrapped [Get("/guild/{id}")] public Task GetGuildAsync([Path] ulong id); #endregion Guild #region User /// /// Get a user /// /// User Id /// wrapped [Get("/user/{id}")] public Task GetUserAsync([Path] ulong id); #endregion User #region Experience /// /// Gets the experience leaderboard /// /// Guild Id, Accepts 0 for all /// %10 offset page /// wrapped [Get("/experience/{guildId}/{page}")] public Task GetExperienceLeaderboardAsync([Path] ulong guildId, [Path] int page = 0); #endregion Experience #region Money /// /// Gets the money leaderboard /// /// Guild Id, Accepts 0 for all /// %10 offset page /// wrapped [Get("/money/{guildId}/{page}")] public Task GetMoneyLeaderboardAsync([Path] ulong guildId, [Path] int page = 0); #endregion Money #region Profile /// /// Get a user's profile card /// /// User Id /// of profile card data [Get("/image/profile/{id}")] public Task GetProfileCardAsync([Path] ulong id); /// /// Get a user's profile card with guild attributes /// /// User Id /// Guild Id /// of profile card data [Get("/image/profile/{id}/{guildId}")] public Task GetProfileCardAsync([Path] ulong id, [Path] ulong guildId); /// /// Preview's a custom background image /// /// User Id /// Background to preview /// of profile card data [Get("/image/profile/{id}/example")] public Task GetExampleProfileCardAsync([Path] ulong id, [Query("previewBackground")] string previewBackground); #endregion Profile #region Rank /// /// Get a user's rank card /// /// User Id /// Guild Id /// of profile card data [Get("/image/rank/{id}/{guildId}")] public Task GetRankCardAsync([Path] ulong id, [Path] ulong guildId); #endregion Rank #region Leave/Join Card /// /// Get's the join card for a guild /// /// User Id /// Guild Id /// of join card [Get("/image/join/{id}/{guildId}")] public Task GetJoinCardAsync([Path] ulong id, [Path] ulong guildId); /// /// Get's the leave card for a guild /// /// User Id /// Guild Id /// of leave card [Get("/image/leave/{id}/{guildId}")] public Task GetLeaveCardAsync([Path] ulong id, [Path] ulong guildId); #endregion Leave/Join Card [Get("/image/magik")] public Task GetLiquidRescaledAsync([Query] string image); } }