using FictionArchive.Service.UserService.Models.DTOs; using FictionArchive.Service.UserService.Services; using HotChocolate.Authorization; namespace FictionArchive.Service.UserService.GraphQL; public class Query { [Authorize] public IQueryable GetUsers(UserManagementService userManagementService) { return userManagementService.GetUsers().Select(user => new UserDto { Id = user.Id, CreatedTime = user.CreatedTime, LastUpdatedTime = user.LastUpdatedTime, Username = user.Username, Email = user.Email, Disabled = user.Disabled, Inviter = user.Inviter != null ? new UserDto { Id = user.Inviter.Id, CreatedTime = user.Inviter.CreatedTime, LastUpdatedTime = user.Inviter.LastUpdatedTime, Username = user.Inviter.Username, Email = user.Inviter.Email, Disabled = user.Inviter.Disabled, Inviter = null // Limit recursion to one level } : null }); } }