tgstation-server 6.19.0
The /tg/station 13 server suite
Loading...
Searching...
No Matches
AdministrationMutations.cs
Go to the documentation of this file.
1using System;
2using System.Threading;
3using System.Threading.Tasks;
4
5using HotChocolate;
6using HotChocolate.Types;
7
11
13{
17 [ExtendObjectType(typeof(Mutation))]
18 [GraphQLDescription(Mutation.GraphQLDescription)]
19 public sealed class AdministrationMutations
20 {
26 [Error(typeof(ErrorMessageException))]
27 public async ValueTask<Query> RestartServerNode(
28 [Service] IGraphQLAuthorityInvoker<IAdministrationAuthority> administrationAuthority)
29 {
30 ArgumentNullException.ThrowIfNull(administrationAuthority);
31 await administrationAuthority.Invoke(
32 authority => authority.TriggerServerRestart());
33
34 return new Query();
35 }
36
44 [Error(typeof(ErrorMessageException))]
45 public async ValueTask<Query> ChangeServerNodeVersionViaTrackedRepository(
46 Version targetVersion,
47 [Service] IGraphQLAuthorityInvoker<IAdministrationAuthority> administrationAuthority,
48 CancellationToken cancellationToken)
49 {
50 ArgumentNullException.ThrowIfNull(targetVersion);
51 ArgumentNullException.ThrowIfNull(administrationAuthority);
52 await administrationAuthority.Invoke<ServerUpdateResponse, ServerUpdateResponse>(
53 authority => authority.TriggerServerVersionChange(targetVersion, false, cancellationToken));
54 return new Query();
55 }
56
64 [GraphQLType<FileUploadTicketType>]
65 [Error(typeof(ErrorMessageException))]
66 public async ValueTask<string> ChangeServerNodeVersionViaUpload(
67 Version targetVersion,
68 [Service] IGraphQLAuthorityInvoker<IAdministrationAuthority> administrationAuthority,
69 CancellationToken cancellationToken)
70 {
71 ArgumentNullException.ThrowIfNull(targetVersion);
72 ArgumentNullException.ThrowIfNull(administrationAuthority);
73 var response = await administrationAuthority.Invoke<ServerUpdateResponse, FileTicketResponse>(
74 authority => authority.TriggerServerVersionChange(targetVersion, true, cancellationToken));
75
76 return response.FileTicket ?? throw new InvalidOperationException("Administration authority did not generate a FileUploadTicket!");
77 }
78 }
79}
Response for when file transfers are necessary.
Exception representing ErrorMessageResponses.
Root type for GraphQL mutations.
Definition Mutation.cs:21
const string GraphQLDescription
Description to show on the Mutation type.
Definition Mutation.cs:25
async ValueTask< Query > ChangeServerNodeVersionViaTrackedRepository(Version targetVersion, [Service] IGraphQLAuthorityInvoker< IAdministrationAuthority > administrationAuthority, CancellationToken cancellationToken)
Restarts the mutated Interfaces.IServerNode without terminating running game instances and changes it...
async ValueTask< Query > RestartServerNode([Service] IGraphQLAuthorityInvoker< IAdministrationAuthority > administrationAuthority)
Restarts the mutated Interfaces.IServerNode without terminating running game instances.
async ValueTask< string > ChangeServerNodeVersionViaUpload(Version targetVersion, [Service] IGraphQLAuthorityInvoker< IAdministrationAuthority > administrationAuthority, CancellationToken cancellationToken)
Restarts the mutated Interfaces.IServerNode without terminating running game instances and changes it...
GraphQL query global::System.Type.
Definition Query.cs:12