From 9d53da530ab00b95991fe228eda599d79cc95d30 Mon Sep 17 00:00:00 2001 From: luxick Date: Sat, 7 Mar 2020 11:01:07 +0100 Subject: [PATCH] Client methods for enemies --- EstusShots.Client/EstusShotsClient.cs | 2 ++ EstusShots.Client/Routes/Enemies.cs | 33 +++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 EstusShots.Client/Routes/Enemies.cs diff --git a/EstusShots.Client/EstusShotsClient.cs b/EstusShots.Client/EstusShotsClient.cs index b42bae5..bf6f58a 100644 --- a/EstusShots.Client/EstusShotsClient.cs +++ b/EstusShots.Client/EstusShotsClient.cs @@ -25,6 +25,7 @@ namespace EstusShots.Client public Episodes Episodes { get; } public Players Players { get; } public Drinks Drinks { get; } + public Enemies Enemies { get; } /// /// Creates a new instance of @@ -39,6 +40,7 @@ namespace EstusShots.Client Episodes = new Episodes(this); Players = new Players(this); Drinks = new Drinks(this); + Enemies = new Enemies(this); } /// diff --git a/EstusShots.Client/Routes/Enemies.cs b/EstusShots.Client/Routes/Enemies.cs new file mode 100644 index 0000000..3360e95 --- /dev/null +++ b/EstusShots.Client/Routes/Enemies.cs @@ -0,0 +1,33 @@ +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using EstusShots.Shared.Interfaces; +using EstusShots.Shared.Models; +using EstusShots.Shared.Models.Parameters; + +namespace EstusShots.Client.Routes +{ + public class Enemies : IEnemiesController + { + private readonly EstusShotsClient _client; + + public Enemies(EstusShotsClient client) + { + _client = client; + } + + public async Task> GetEnemies(GetEnemiesParameter parameter) + => await _client.PostToApi(ActionUrl(), parameter); + + public async Task> GetEnemy(GetEnemyParameter parameter) + => await _client.PostToApi(ActionUrl(), parameter); + + public async Task> SaveEnemy(SaveEnemyParameter parameter) + => await _client.PostToApi(ActionUrl(), parameter); + + public async Task> DeleteEnemy(DeleteEnemyParameter parameter) + => await _client.PostToApi(ActionUrl(), parameter); + + private string ActionUrl([CallerMemberName]string caller = "") => + $"{_client.ApiUrl}{GetType().Name}/{caller}"; + } +} \ No newline at end of file