mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-31 00:50:45 +01:00
Finish the clients
This commit is contained in:
@@ -54,7 +54,7 @@ namespace Tgstation.Server.Api
|
||||
public const string InstanceUser = Root + nameof(Models.InstanceUser);
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="Models.InstanceUser"/> controller
|
||||
/// The <see cref="Models.ChatBot"/> controller
|
||||
/// </summary>
|
||||
public const string Chat = Root + "Chat";
|
||||
|
||||
@@ -63,6 +63,11 @@ namespace Tgstation.Server.Api
|
||||
/// </summary>
|
||||
public const string DreamMaker = Root + nameof(Models.DreamMaker);
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="Models.Job"/> controller
|
||||
/// </summary>
|
||||
public const string Jobs = Root + nameof(Models.Job);
|
||||
|
||||
/// <summary>
|
||||
/// Apply an <paramref name="id"/> postfix to a <paramref name="route"/>
|
||||
/// </summary>
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace Tgstation.Server.Client.Components
|
||||
public Task<DreamDaemon> Start(CancellationToken cancellationToken) => apiClient.Create<DreamDaemon>(Routes.DreamDaemon, instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<DreamDaemon> Read(CancellationToken cancellationToken) => apiClient.Read<DreamDaemon>(Routes.DreamDaemon, cancellationToken);
|
||||
public Task<DreamDaemon> Read(CancellationToken cancellationToken) => apiClient.Read<DreamDaemon>(Routes.DreamDaemon, instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<DreamDaemon> Update(DreamDaemon dreamDaemon, CancellationToken cancellationToken) => apiClient.Update<DreamDaemon, DreamDaemon>(Routes.DreamDaemon, dreamDaemon, instance.Id, cancellationToken);
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace Tgstation.Server.Client.Components
|
||||
public IDreamMakerClient DreamMaker { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public IJobsClient Jobs => throw new NotImplementedException();
|
||||
public IJobsClient Jobs { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="IApiClient"/> for the <see cref="InstanceClient"/>
|
||||
@@ -55,6 +55,7 @@ namespace Tgstation.Server.Client.Components
|
||||
Users = new InstanceUserClient(apiClient, instance);
|
||||
ChatBots = new ChatBotsClient(apiClient, instance);
|
||||
DreamMaker = new DreamMakerClient(apiClient, instance);
|
||||
Jobs = new JobsClient(apiClient, instance);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Tgstation.Server.Api;
|
||||
using Tgstation.Server.Api.Models;
|
||||
|
||||
namespace Tgstation.Server.Client.Components
|
||||
{
|
||||
/// <inheritdoc />
|
||||
sealed class JobsClient : IJobsClient
|
||||
{
|
||||
/// <summary>
|
||||
/// The <see cref="IApiClient"/> for the <see cref="JobsClient"/>
|
||||
/// </summary>
|
||||
readonly IApiClient apiClient;
|
||||
/// <summary>
|
||||
/// The <see cref="Instance"/> for the <see cref="JobsClient"/>
|
||||
/// </summary>
|
||||
readonly Instance instance;
|
||||
|
||||
/// <summary>
|
||||
/// Construct a <see cref="JobsClient"/>
|
||||
/// </summary>
|
||||
/// <param name="apiClient">The value of <see cref="apiClient"/></param>
|
||||
/// <param name="instance">The value of <see cref="Instance"/></param>
|
||||
public JobsClient(IApiClient apiClient, Instance instance)
|
||||
{
|
||||
this.apiClient = apiClient ?? throw new ArgumentNullException(nameof(apiClient));
|
||||
this.instance = instance ?? throw new ArgumentNullException(nameof(instance));
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task Cancel(Job job, CancellationToken cancellationToken) => apiClient.Delete(Routes.SetID(Routes.Jobs, job.Id), instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<IReadOnlyList<Job>> List(CancellationToken cancellationToken) => apiClient.Read<IReadOnlyList<Job>>(Routes.List(Routes.Jobs), instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<Job> Read(Job job, CancellationToken cancellationToken) => apiClient.Read<Job>(Routes.SetID(Routes.Jobs, job.Id), instance.Id, cancellationToken);
|
||||
}
|
||||
}
|
||||
@@ -32,7 +32,7 @@ namespace Tgstation.Server.Client.Components
|
||||
public Task Delete(CancellationToken cancellationToken) => apiClient.Delete(Routes.Repository, instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<Repository> Read(CancellationToken cancellationToken) => apiClient.Read<Repository>(Routes.Repository, cancellationToken);
|
||||
public Task<Repository> Read(CancellationToken cancellationToken) => apiClient.Read<Repository>(Routes.Repository, instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<Repository> Update(Repository repository, CancellationToken cancellationToken) => apiClient.Update<Repository, Repository>(Routes.Repository, repository, instance.Id, cancellationToken);
|
||||
|
||||
@@ -6,6 +6,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Tgstation.Server.Api;
|
||||
using Tgstation.Server.Host.Core;
|
||||
using Tgstation.Server.Host.Models;
|
||||
using Tgstation.Server.Host.Security;
|
||||
@@ -15,7 +16,7 @@ namespace Tgstation.Server.Host.Controllers
|
||||
/// <summary>
|
||||
/// <see cref="ModelController{TModel}"/> for <see cref="Api.Models.Job"/>s
|
||||
/// </summary>
|
||||
[Route("/" + nameof(Job))]
|
||||
[Route(Routes.Jobs)]
|
||||
public sealed class JobController : ModelController<Api.Models.Job>
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user