mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-27 23:17:20 +01:00
More clients
This commit is contained in:
@@ -53,6 +53,16 @@ namespace Tgstation.Server.Api
|
||||
/// </summary>
|
||||
public const string InstanceUser = Root + nameof(Models.InstanceUser);
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="Models.InstanceUser"/> controller
|
||||
/// </summary>
|
||||
public const string Chat = Root + "Chat";
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="Models.DreamMaker"/> controller
|
||||
/// </summary>
|
||||
public const string DreamMaker = Root + nameof(Models.DreamMaker);
|
||||
|
||||
/// <summary>
|
||||
/// Apply an <paramref name="id"/> postfix to a <paramref name="route"/>
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
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 ChatBotsClient : IChatBotsClient
|
||||
{
|
||||
/// <summary>
|
||||
/// The <see cref="IApiClient"/> for the <see cref="ChatBotsClient"/>
|
||||
/// </summary>
|
||||
readonly IApiClient apiClient;
|
||||
/// <summary>
|
||||
/// The <see cref="Instance"/> for the <see cref="ChatBotsClient"/>
|
||||
/// </summary>
|
||||
readonly Instance instance;
|
||||
|
||||
/// <summary>
|
||||
/// Construct a <see cref="ChatBotsClient"/>
|
||||
/// </summary>
|
||||
/// <param name="apiClient">The value of <see cref="apiClient"/></param>
|
||||
/// <param name="instance">The value of <see cref="instance"/></param>
|
||||
public ChatBotsClient(IApiClient apiClient, Instance instance)
|
||||
{
|
||||
this.apiClient = apiClient ?? throw new ArgumentNullException(nameof(apiClient));
|
||||
this.instance = instance ?? throw new ArgumentNullException(nameof(instance));
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<ChatBot> Create(ChatBot settings, CancellationToken cancellationToken) => apiClient.Create<ChatBot, ChatBot>(Routes.Chat, settings, instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task Delete(ChatBot settings, CancellationToken cancellationToken) => apiClient.Delete(Routes.SetID(Routes.Chat, settings.Id), instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<IReadOnlyList<ChatBot>> List(CancellationToken cancellationToken) => apiClient.Create<IReadOnlyList<ChatBot>>(Routes.List(Routes.Chat), instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<ChatBot> Update(ChatBot settings, CancellationToken cancellationToken) => apiClient.Update<ChatBot, ChatBot>(Routes.Chat, settings, instance.Id, cancellationToken);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Tgstation.Server.Api;
|
||||
using Tgstation.Server.Api.Models;
|
||||
|
||||
namespace Tgstation.Server.Client.Components
|
||||
{
|
||||
/// <inheritdoc />
|
||||
sealed class DreamMakerClient : IDreamMakerClient
|
||||
{
|
||||
/// <summary>
|
||||
/// The <see cref="IApiClient"/> for the <see cref="DreamMakerClient"/>
|
||||
/// </summary>
|
||||
private IApiClient apiClient;
|
||||
/// <summary>
|
||||
/// The <see cref="Instance"/> for the <see cref="DreamMakerClient"/>
|
||||
/// </summary>
|
||||
private Instance instance;
|
||||
|
||||
/// <summary>
|
||||
/// Construct a <see cref="DreamMakerClient"/>
|
||||
/// </summary>
|
||||
/// <param name="apiClient">The value of <see cref="apiClient"/></param>
|
||||
/// <param name="instance">The value of <see cref="Instance"/></param>
|
||||
public DreamMakerClient(IApiClient apiClient, Instance instance)
|
||||
{
|
||||
this.apiClient = apiClient ?? throw new ArgumentNullException(nameof(apiClient));
|
||||
this.instance = instance ?? throw new ArgumentNullException(nameof(instance));
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<Job> Compile(CancellationToken cancellationToken) => apiClient.Create<Job>(Routes.DreamMaker, instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<DreamMaker> Read(CancellationToken cancellationToken) => apiClient.Read<DreamMaker>(Routes.DreamMaker, instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<DreamMaker> Update(DreamMaker dreamMaker, CancellationToken cancellationToken) => apiClient.Update<DreamMaker, DreamMaker>(Routes.DreamMaker, dreamMaker, instance.Id, cancellationToken);
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,7 @@ namespace Tgstation.Server.Client.Components
|
||||
/// <param name="dreamMaker">The <see cref="DreamMaker"/> to update</param>
|
||||
/// <param name="cancellationToken">The <see cref="CancellationToken"/> for the operation</param>
|
||||
/// <returns>A <see cref="Task"/> representing the running operation</returns>
|
||||
Task Update(DreamMaker dreamMaker, CancellationToken cancellationToken);
|
||||
Task<DreamMaker> Update(DreamMaker dreamMaker, CancellationToken cancellationToken);
|
||||
|
||||
/// <summary>
|
||||
/// Compile the current repository revision
|
||||
|
||||
@@ -22,13 +22,13 @@ namespace Tgstation.Server.Client.Components
|
||||
public IConfigurationClient Configuration { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public IInstanceUserClient Users => throw new NotImplementedException();
|
||||
public IInstanceUserClient Users { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public IChatBotsClient ChatBots => throw new NotImplementedException();
|
||||
public IChatBotsClient ChatBots { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public IDreamMakerClient DreamMaker => throw new NotImplementedException();
|
||||
public IDreamMakerClient DreamMaker { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public IJobsClient Jobs => throw new NotImplementedException();
|
||||
@@ -52,6 +52,9 @@ namespace Tgstation.Server.Client.Components
|
||||
Repository = new RepositoryClient(apiClient, instance);
|
||||
DreamDaemon = new DreamDaemonClient(apiClient, instance);
|
||||
Configuration = new ConfigurationClient(apiClient, instance);
|
||||
Users = new InstanceUserClient(apiClient, instance);
|
||||
ChatBots = new ChatBotsClient(apiClient, instance);
|
||||
DreamMaker = new DreamMakerClient(apiClient, instance);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,17 +31,17 @@ namespace Tgstation.Server.Client.Components
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<InstanceUser> Create(InstanceUser user, CancellationToken cancellationToken) => apiClient.Create<InstanceUser, InstanceUser>(Routes.InstanceUser, user, cancellationToken);
|
||||
public Task<InstanceUser> Create(InstanceUser user, CancellationToken cancellationToken) => apiClient.Create<InstanceUser, InstanceUser>(Routes.InstanceUser, user, instance.Id, cancellationToken);
|
||||
|
||||
public Task Delete(InstanceUser instanceUser, CancellationToken cancellationToken) => apiClient.Delete(Routes.SetID(Routes.InstanceUser, instanceUser.UserId.Value), cancellationToken);
|
||||
public Task Delete(InstanceUser instanceUser, CancellationToken cancellationToken) => apiClient.Delete(Routes.SetID(Routes.InstanceUser, instanceUser.UserId.Value), instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<InstanceUser> Read(CancellationToken cancellationToken) => apiClient.Read<InstanceUser>(Routes.InstanceUser, cancellationToken);
|
||||
public Task<InstanceUser> Read(CancellationToken cancellationToken) => apiClient.Read<InstanceUser>(Routes.InstanceUser, instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<InstanceUser> Update(InstanceUser user, CancellationToken cancellationToken) => apiClient.Update<InstanceUser, InstanceUser>(Routes.InstanceUser, user, cancellationToken);
|
||||
public Task<InstanceUser> Update(InstanceUser user, CancellationToken cancellationToken) => apiClient.Update<InstanceUser, InstanceUser>(Routes.InstanceUser, user, instance.Id, cancellationToken);
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<IReadOnlyList<InstanceUser>> List(CancellationToken cancellationToken) => apiClient.Read<IReadOnlyList<InstanceUser>>(Routes.List(Routes.InstanceUser), cancellationToken);
|
||||
public Task<IReadOnlyList<InstanceUser>> List(CancellationToken cancellationToken) => apiClient.Read<IReadOnlyList<InstanceUser>>(Routes.List(Routes.InstanceUser), instance.Id, cancellationToken);
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Tgstation.Server.Api;
|
||||
using Tgstation.Server.Api.Models;
|
||||
using Tgstation.Server.Api.Rights;
|
||||
using Tgstation.Server.Host.Components;
|
||||
@@ -21,7 +22,7 @@ namespace Tgstation.Server.Host.Controllers
|
||||
/// <summary>
|
||||
/// <see cref="ModelController{TModel}"/> for managing <see cref="Api.Models.ChatBot"/>s
|
||||
/// </summary>
|
||||
[Route("/" + nameof(Components.Chat.Chat))]
|
||||
[Route(Routes.Chat)]
|
||||
public sealed class ChatController : ModelController<Api.Models.ChatBot>
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
@@ -6,6 +6,7 @@ using System;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Tgstation.Server.Api;
|
||||
using Tgstation.Server.Api.Rights;
|
||||
using Tgstation.Server.Host.Components;
|
||||
using Tgstation.Server.Host.Core;
|
||||
@@ -17,7 +18,7 @@ namespace Tgstation.Server.Host.Controllers
|
||||
/// <summary>
|
||||
/// Controller for managing the compiler
|
||||
/// </summary>
|
||||
[Route("/" + nameof(Api.Models.DreamMaker))]
|
||||
[Route(Routes.DreamMaker)]
|
||||
public sealed class DreamMakerController : ModelController<Api.Models.DreamMaker>
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user