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}"; } }