using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Tgstation.Server.Api; using Tgstation.Server.Api.Models; using Tgstation.Server.Api.Models.Request; using Tgstation.Server.Api.Models.Response; namespace Tgstation.Server.Client { /// sealed class UserGroupsClient : PaginatedClient, IUserGroupsClient { /// /// Initializes a new instance of the class. /// /// The for the . public UserGroupsClient(IApiClient apiClient) : base(apiClient) { } /// public ValueTask Create(UserGroupCreateRequest group, CancellationToken cancellationToken) => ApiClient.Create(Routes.UserGroup, group ?? throw new ArgumentNullException(nameof(group)), cancellationToken); /// public ValueTask GetId(EntityId group, CancellationToken cancellationToken) => ApiClient.Read(Routes.SetID(Routes.UserGroup, group?.Id ?? throw new ArgumentNullException(nameof(group))), cancellationToken); /// public ValueTask> List(PaginationSettings? paginationSettings, CancellationToken cancellationToken) => ReadPaged(paginationSettings, Routes.ListRoute(Routes.UserGroup), null, cancellationToken); /// public ValueTask Update(UserGroupUpdateRequest group, CancellationToken cancellationToken) => ApiClient.Update(Routes.UserGroup, group ?? throw new ArgumentNullException(nameof(group)), cancellationToken); /// public ValueTask Delete(EntityId group, CancellationToken cancellationToken) => ApiClient.Delete(Routes.SetID(Routes.UserGroup, group?.Id ?? throw new ArgumentNullException(nameof(group))), cancellationToken); } }