tgstation-server 6.19.0
The /tg/station 13 server suite
Loading...
Searching...
No Matches
UserGroupMutations.cs
Go to the documentation of this file.
1using System;
2using System.Threading;
3using System.Threading.Tasks;
4
5using HotChocolate;
6using HotChocolate.Types;
7using HotChocolate.Types.Relay;
8
13
15{
19 [ExtendObjectType(typeof(Mutation))]
20 [GraphQLDescription(Mutation.GraphQLDescription)]
21 public sealed class UserGroupMutations
22 {
28 static Models.PermissionSet? TransformApiPermissionSet(PermissionSetInput? permissionSet)
29 => permissionSet != null
31 {
32 InstanceManagerRights = permissionSet?.InstanceManagerRights,
33 AdministrationRights = permissionSet?.AdministrationRights,
34 }
35 : null;
36
45 [Error(typeof(ErrorMessageException))]
46 public ValueTask<UserGroup> CreateUserGroup(
47 string name,
48 PermissionSetInput? permissionSet,
49 [Service] IGraphQLAuthorityInvoker<IUserGroupAuthority> userGroupAuthority,
50 CancellationToken cancellationToken)
51 {
52 ArgumentNullException.ThrowIfNull(name);
53 ArgumentNullException.ThrowIfNull(userGroupAuthority);
54
55 return userGroupAuthority.InvokeTransformable<Models.UserGroup, UserGroup, UserGroupGraphQLTransformer>(
56 authority => authority.Create(name, TransformApiPermissionSet(permissionSet), cancellationToken));
57 }
58
68 [Error(typeof(ErrorMessageException))]
69 public ValueTask<UserGroup> UpdateUserGroup(
70 [ID(nameof(UserGroup))] long id,
71 string? newName,
72 PermissionSetInput? newPermissionSet,
73 [Service] IGraphQLAuthorityInvoker<IUserGroupAuthority> userGroupAuthority,
74 CancellationToken cancellationToken)
75 {
76 ArgumentNullException.ThrowIfNull(userGroupAuthority);
77 return userGroupAuthority.InvokeTransformable<Models.UserGroup, UserGroup, UserGroupGraphQLTransformer>(
78 authority => authority.Update(id, newName, TransformApiPermissionSet(newPermissionSet), cancellationToken));
79 }
80
88 [Error(typeof(ErrorMessageException))]
89 public async ValueTask<Query> DeleteEmptyUserGroup(
90 [ID(nameof(UserGroup))] long id,
91 [Service] IGraphQLAuthorityInvoker<IUserGroupAuthority> userGroupAuthority,
92 CancellationToken cancellationToken)
93 {
94 ArgumentNullException.ThrowIfNull(userGroupAuthority);
95 await userGroupAuthority.Invoke(
96 authority => authority.DeleteEmpty(id, cancellationToken));
97
98 return new Query();
99 }
100 }
101}
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
Updates a set of permissions for the server. null values default to their "None" variants.
static Models.? PermissionSet TransformApiPermissionSet(PermissionSetInput? permissionSet)
Transform a Api.Models.PermissionSet into a PermissionSet.
ValueTask< UserGroup > UpdateUserGroup([ID(nameof(UserGroup))] long id, string? newName, PermissionSetInput? newPermissionSet, [Service] IGraphQLAuthorityInvoker< IUserGroupAuthority > userGroupAuthority, CancellationToken cancellationToken)
Updates a UserGroup.
async ValueTask< Query > DeleteEmptyUserGroup([ID(nameof(UserGroup))] long id, [Service] IGraphQLAuthorityInvoker< IUserGroupAuthority > userGroupAuthority, CancellationToken cancellationToken)
Deletes a UserGroup.
ValueTask< UserGroup > CreateUserGroup(string name, PermissionSetInput? permissionSet, [Service] IGraphQLAuthorityInvoker< IUserGroupAuthority > userGroupAuthority, CancellationToken cancellationToken)
Creates a UserGroup.
GraphQL query global::System.Type.
Definition Query.cs:12
ITransformer<TInput, TOutput> for GraphQL.Types.UserGroups.