chore: refactoring some code to introduce a common base class for all api classes
This commit is contained in:
49
src/Clients/ClientsApi.cs
Normal file
49
src/Clients/ClientsApi.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Novaloop.PaymoApi.Clients.Models;
|
||||
using Novaloop.PaymoApi.Shared;
|
||||
|
||||
namespace Novaloop.PaymoApi.Clients
|
||||
{
|
||||
public class ClientsApi : IClientsApi
|
||||
{
|
||||
private readonly IBaseApi<ClientsResponse, Client> _baseApi;
|
||||
|
||||
public ClientsApi(IBaseApi<ClientsResponse, Client> baseApi)
|
||||
{
|
||||
_baseApi = baseApi;
|
||||
_baseApi.ResourceUri = "clients";
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<IEnumerable<Client>> GetClients()
|
||||
{
|
||||
return (await _baseApi.GetAll()).Clients;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<Client> GetClient(int clientId)
|
||||
{
|
||||
return (await _baseApi.Get(clientId)).Clients.Single();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<Client> CreateClient(Client client)
|
||||
{
|
||||
return (await _baseApi.Create(client)).Clients.Single();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task DeleteClient(int clientId)
|
||||
{
|
||||
await _baseApi.Delete(clientId);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task UpdateClient(Client client, int clientId)
|
||||
{
|
||||
await _baseApi.Update(client, clientId);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user