From ec5fbba87cbc1b0700589b1780c996b4a0476a2a Mon Sep 17 00:00:00 2001 From: Robert Date: Wed, 24 Jul 2024 22:07:58 +0200 Subject: [PATCH] Workshop - Revert voting changes, was fun to try but not useful enough --- .../Workshop/Entries/EntryVoteView.axaml | 65 ----------- .../Workshop/Entries/EntryVoteView.axaml.cs | 14 --- .../Workshop/Entries/EntryVoteViewModel.cs | 91 --------------- .../Entries/List/EntryListInputView.axaml | 1 - .../Entries/List/EntryListItemView.axaml | 14 +-- .../Entries/List/EntryListItemViewModel.cs | 9 +- .../Entries/List/EntryListViewModel.cs | 3 - .../Library/Tabs/InstalledTabItemView.axaml | 16 ++- .../Library/Tabs/InstalledTabItemViewModel.cs | 16 +-- .../DryIoc/ContainerExtensions.cs | 1 - .../Mutations/CastVote.graphql | 16 --- .../Mutations/CreateEntry.graphql | 2 +- .../Queries/Fragments.graphql | 4 - .../Queries/GetVotes.graphql | 6 - .../Services/VoteClient.cs | 105 ------------------ .../WorkshopConstants.cs | 8 +- .../graphql.config.yml | 2 +- src/Artemis.WebClient.Workshop/schema.graphql | 51 --------- 18 files changed, 29 insertions(+), 395 deletions(-) delete mode 100644 src/Artemis.UI/Screens/Workshop/Entries/EntryVoteView.axaml delete mode 100644 src/Artemis.UI/Screens/Workshop/Entries/EntryVoteView.axaml.cs delete mode 100644 src/Artemis.UI/Screens/Workshop/Entries/EntryVoteViewModel.cs delete mode 100644 src/Artemis.WebClient.Workshop/Mutations/CastVote.graphql delete mode 100644 src/Artemis.WebClient.Workshop/Queries/GetVotes.graphql delete mode 100644 src/Artemis.WebClient.Workshop/Services/VoteClient.cs diff --git a/src/Artemis.UI/Screens/Workshop/Entries/EntryVoteView.axaml b/src/Artemis.UI/Screens/Workshop/Entries/EntryVoteView.axaml deleted file mode 100644 index 113a21d96..000000000 --- a/src/Artemis.UI/Screens/Workshop/Entries/EntryVoteView.axaml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Workshop/Entries/EntryVoteView.axaml.cs b/src/Artemis.UI/Screens/Workshop/Entries/EntryVoteView.axaml.cs deleted file mode 100644 index 5c131be6a..000000000 --- a/src/Artemis.UI/Screens/Workshop/Entries/EntryVoteView.axaml.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; -using Avalonia.ReactiveUI; - -namespace Artemis.UI.Screens.Workshop.Entries; - -public partial class EntryVoteView : ReactiveUserControl -{ - public EntryVoteView() - { - InitializeComponent(); - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Workshop/Entries/EntryVoteViewModel.cs b/src/Artemis.UI/Screens/Workshop/Entries/EntryVoteViewModel.cs deleted file mode 100644 index 14e449974..000000000 --- a/src/Artemis.UI/Screens/Workshop/Entries/EntryVoteViewModel.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Reactive.Disposables; -using System.Threading.Tasks; -using Artemis.UI.Shared; -using Artemis.UI.Shared.Services; -using Artemis.UI.Shared.Services.Builders; -using Artemis.WebClient.Workshop; -using Artemis.WebClient.Workshop.Services; -using PropertyChanged.SourceGenerator; -using ReactiveUI; - -namespace Artemis.UI.Screens.Workshop.Entries; - -public partial class EntryVoteViewModel : ActivatableViewModelBase -{ - private readonly IEntrySummary _entry; - private readonly INotificationService _notificationService; - private readonly IVoteClient _voteClient; - private bool _voting; - - [Notify] private int _score; - [Notify] private bool _upvoted; - [Notify] private bool _downvoted; - - public EntryVoteViewModel(IEntrySummary entry, IAuthenticationService authenticationService, INotificationService notificationService, IVoteClient voteClient) - { - _entry = entry; - _notificationService = notificationService; - _voteClient = voteClient; - - IsLoggedIn = authenticationService.IsLoggedIn; - Score = entry.UpvoteCount - entry.DownvoteCount; - this.WhenActivated(d => IsLoggedIn.Subscribe(l => _ = GetVoteStatus(l)).DisposeWith(d)); - } - - public IObservable IsLoggedIn { get; } - - public async Task CastVote(bool upvote) - { - // Could use a ReactiveCommand to achieve the same thing but that disables the button - // while executing which grays it out for a fraction of a second and looks bad - if (_voting) - return; - - _voting = true; - try - { - IVoteCount? result; - // If the vote was removed, reset the upvote/downvote state - if ((Upvoted && upvote) || (Downvoted && !upvote)) - { - result = await _voteClient.ClearVote(_entry.Id); - Upvoted = false; - Downvoted = false; - } - else - { - result = await _voteClient.CastVote(_entry.Id, upvote); - Upvoted = upvote; - Downvoted = !upvote; - } - - if (result != null) - Score = result.UpvoteCount - result.DownvoteCount; - else - _notificationService.CreateNotification().WithTitle("Failed to cast vote").WithMessage("Please try again later.").WithSeverity(NotificationSeverity.Error).Show(); - } - finally - { - _voting = false; - } - } - - private async Task GetVoteStatus(bool isLoggedIn) - { - if (!isLoggedIn) - { - Upvoted = false; - Downvoted = false; - } - else - { - bool? vote = await _voteClient.GetVote(_entry.Id); - if (vote != null) - { - Upvoted = vote.Value; - Downvoted = !vote.Value; - } - } - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListInputView.axaml b/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListInputView.axaml index 476ae9bd2..8fdc91d29 100644 --- a/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListInputView.axaml +++ b/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListInputView.axaml @@ -21,7 +21,6 @@ Recently updated Recently added Download count - Score diff --git a/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListItemView.axaml b/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListItemView.axaml index 7473034d3..cae7a1934 100644 --- a/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListItemView.axaml +++ b/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListItemView.axaml @@ -3,7 +3,6 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia" - xmlns:entries1="clr-namespace:Artemis.UI.Screens.Workshop.Entries" xmlns:il="clr-namespace:AsyncImageLoader;assembly=AsyncImageLoader.Avalonia" xmlns:converters="clr-namespace:Artemis.UI.Converters" xmlns:list="clr-namespace:Artemis.UI.Screens.Workshop.Entries.List" @@ -21,12 +20,9 @@ HorizontalContentAlignment="Stretch" Command="{CompiledBinding NavigateToEntry}" IsVisible="{CompiledBinding Entry, Converter={x:Static ObjectConverters.IsNotNull}}"> - - - - + - - + @@ -82,7 +78,7 @@ - + @@ -92,7 +88,7 @@ - + installed diff --git a/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListItemViewModel.cs b/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListItemViewModel.cs index a02325bc4..d129f9be6 100644 --- a/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListItemViewModel.cs +++ b/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListItemViewModel.cs @@ -1,4 +1,5 @@ using System; +using System.Reactive; using System.Reactive.Disposables; using System.Threading.Tasks; using Artemis.UI.Shared; @@ -17,12 +18,12 @@ public partial class EntryListItemViewModel : ActivatableViewModelBase [Notify] private bool _isInstalled; [Notify] private bool _updateAvailable; - public EntryListItemViewModel(IEntrySummary entry, IRouter router, IWorkshopService workshopService, Func getEntryVoteViewModel) + public EntryListItemViewModel(IEntrySummary entry, IRouter router, IWorkshopService workshopService) { _router = router; Entry = entry; - VoteViewModel = getEntryVoteViewModel(entry); + NavigateToEntry = ReactiveCommand.CreateFromTask(ExecuteNavigateToEntry); this.WhenActivated((CompositeDisposable _) => { @@ -33,9 +34,9 @@ public partial class EntryListItemViewModel : ActivatableViewModelBase } public IEntrySummary Entry { get; } - public EntryVoteViewModel VoteViewModel { get; } + public ReactiveCommand NavigateToEntry { get; } - public async Task NavigateToEntry() + private async Task ExecuteNavigateToEntry() { switch (Entry.EntryType) { diff --git a/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListViewModel.cs b/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListViewModel.cs index 48388aeb5..a6b5309c7 100644 --- a/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListViewModel.cs +++ b/src/Artemis.UI/Screens/Workshop/Entries/List/EntryListViewModel.cs @@ -137,9 +137,6 @@ public partial class EntryListViewModel : RoutableScreen if (InputViewModel.SortBy == 2) return new[] {new EntrySortInput {Downloads = SortEnumType.Desc}}; - // Sort by score - if (InputViewModel.SortBy == 3) - return new[] {new EntrySortInput {Score = SortEnumType.Desc}}; // Sort by latest release, then by created at return new[] diff --git a/src/Artemis.UI/Screens/Workshop/Library/Tabs/InstalledTabItemView.axaml b/src/Artemis.UI/Screens/Workshop/Library/Tabs/InstalledTabItemView.axaml index b8347c3df..71ab5983c 100644 --- a/src/Artemis.UI/Screens/Workshop/Library/Tabs/InstalledTabItemView.axaml +++ b/src/Artemis.UI/Screens/Workshop/Library/Tabs/InstalledTabItemView.axaml @@ -11,6 +11,7 @@ x:DataType="tabs:InstalledTabItemViewModel"> + diff --git a/src/Artemis.UI/Screens/Workshop/Library/Tabs/InstalledTabItemViewModel.cs b/src/Artemis.UI/Screens/Workshop/Library/Tabs/InstalledTabItemViewModel.cs index 75a58ce75..6307a8557 100644 --- a/src/Artemis.UI/Screens/Workshop/Library/Tabs/InstalledTabItemViewModel.cs +++ b/src/Artemis.UI/Screens/Workshop/Library/Tabs/InstalledTabItemViewModel.cs @@ -10,7 +10,6 @@ using Artemis.Core.Services; using Artemis.UI.DryIoc.Factories; using Artemis.UI.Extensions; using Artemis.UI.Screens.Plugins; -using Artemis.UI.Screens.Workshop.Entries; using Artemis.UI.Services.Interfaces; using Artemis.UI.Shared; using Artemis.UI.Shared.Routing; @@ -36,7 +35,6 @@ public partial class InstalledTabItemViewModel : ActivatableViewModelBase [Notify] private bool _updateAvailable; [Notify] private bool _autoUpdate; - [Notify] private EntryVoteViewModel _voteViewModel; public InstalledTabItemViewModel(InstalledEntry entry, IWorkshopClient client, @@ -45,8 +43,7 @@ public partial class InstalledTabItemViewModel : ActivatableViewModelBase IRouter router, IWindowService windowService, IPluginManagementService pluginManagementService, - ISettingsVmFactory settingsVmFactory, - Func getEntryVoteViewModel) + ISettingsVmFactory settingsVmFactory) { _client = client; _workshopService = workshopService; @@ -56,9 +53,9 @@ public partial class InstalledTabItemViewModel : ActivatableViewModelBase _pluginManagementService = pluginManagementService; _settingsVmFactory = settingsVmFactory; _autoUpdate = entry.AutoUpdate; - + Entry = entry; - + this.WhenActivatedAsync(async _ => { // Grab the latest entry summary from the workshop @@ -68,7 +65,6 @@ public partial class InstalledTabItemViewModel : ActivatableViewModelBase if (entrySummary.Data?.Entry != null) { Entry.ApplyEntrySummary(entrySummary.Data.Entry); - VoteViewModel = getEntryVoteViewModel(entrySummary.Data.Entry); _workshopService.SaveInstalledEntry(Entry); } } @@ -77,7 +73,7 @@ public partial class InstalledTabItemViewModel : ActivatableViewModelBase UpdateAvailable = Entry.ReleaseId != Entry.LatestReleaseId; } }); - + this.WhenAnyValue(vm => vm.AutoUpdate).Skip(1).Subscribe(_ => AutoUpdateToggled()); } @@ -126,10 +122,10 @@ public partial class InstalledTabItemViewModel : ActivatableViewModelBase private void AutoUpdateToggled() { _workshopService.SetAutoUpdate(Entry, AutoUpdate); - + if (!AutoUpdate) return; - + Task.Run(async () => { await _workshopUpdateService.AutoUpdateEntry(Entry); diff --git a/src/Artemis.WebClient.Workshop/DryIoc/ContainerExtensions.cs b/src/Artemis.WebClient.Workshop/DryIoc/ContainerExtensions.cs index dc5a12d67..bebc8caf1 100644 --- a/src/Artemis.WebClient.Workshop/DryIoc/ContainerExtensions.cs +++ b/src/Artemis.WebClient.Workshop/DryIoc/ContainerExtensions.cs @@ -53,7 +53,6 @@ public static class ContainerExtensions container.Register(Reuse.Singleton); container.Register(Reuse.Singleton); container.Register(Reuse.Singleton); - container.Register(Reuse.Singleton); container.Register(Reuse.Singleton); container.Register(); diff --git a/src/Artemis.WebClient.Workshop/Mutations/CastVote.graphql b/src/Artemis.WebClient.Workshop/Mutations/CastVote.graphql deleted file mode 100644 index 22dbd80d8..000000000 --- a/src/Artemis.WebClient.Workshop/Mutations/CastVote.graphql +++ /dev/null @@ -1,16 +0,0 @@ -mutation CastVote($input: CastVoteInput!) { - castVote(input: $input) { - ...voteCount - } -} - -mutation ClearVote($entryId: Long!) { - clearVote(entryId: $entryId) { - ...voteCount - } -} - -fragment voteCount on Entry { - upvoteCount - downvoteCount -} \ No newline at end of file diff --git a/src/Artemis.WebClient.Workshop/Mutations/CreateEntry.graphql b/src/Artemis.WebClient.Workshop/Mutations/CreateEntry.graphql index b4b621356..7191bc704 100644 --- a/src/Artemis.WebClient.Workshop/Mutations/CreateEntry.graphql +++ b/src/Artemis.WebClient.Workshop/Mutations/CreateEntry.graphql @@ -2,4 +2,4 @@ mutation AddEntry ($input: CreateEntryInput!) { addEntry(input: $input) { id } -} \ No newline at end of file +} diff --git a/src/Artemis.WebClient.Workshop/Queries/Fragments.graphql b/src/Artemis.WebClient.Workshop/Queries/Fragments.graphql index ba23037d5..cf0c3c779 100644 --- a/src/Artemis.WebClient.Workshop/Queries/Fragments.graphql +++ b/src/Artemis.WebClient.Workshop/Queries/Fragments.graphql @@ -36,8 +36,6 @@ fragment entrySummary on Entry { summary entryType downloads - upvoteCount - downvoteCount createdAt latestReleaseId categories { @@ -53,8 +51,6 @@ fragment entryDetails on Entry { summary entryType downloads - upvoteCount - downvoteCount createdAt description categories { diff --git a/src/Artemis.WebClient.Workshop/Queries/GetVotes.graphql b/src/Artemis.WebClient.Workshop/Queries/GetVotes.graphql deleted file mode 100644 index e671b6e7d..000000000 --- a/src/Artemis.WebClient.Workshop/Queries/GetVotes.graphql +++ /dev/null @@ -1,6 +0,0 @@ -query GetVotes { - votes { - entryId - upvote - } -} \ No newline at end of file diff --git a/src/Artemis.WebClient.Workshop/Services/VoteClient.cs b/src/Artemis.WebClient.Workshop/Services/VoteClient.cs deleted file mode 100644 index 7c4ba8b9f..000000000 --- a/src/Artemis.WebClient.Workshop/Services/VoteClient.cs +++ /dev/null @@ -1,105 +0,0 @@ -using StrawberryShake; - -namespace Artemis.WebClient.Workshop.Services; - -public class VoteClient : IVoteClient -{ - private readonly Dictionary _cache = new(); - private readonly IWorkshopClient _client; - private readonly SemaphoreSlim _lock = new(1, 1); - private DateTime _cacheAge = DateTime.MinValue; - - public VoteClient(IWorkshopClient client, IAuthenticationService authenticationService) - { - _client = client; - authenticationService.IsLoggedIn.Subscribe(_ => _cacheAge = DateTime.MinValue); - } - - /// - public async Task GetVote(long entryId) - { - await _lock.WaitAsync(); - - try - { - if (_cacheAge < DateTime.UtcNow.AddMinutes(-15)) - { - _cache.Clear(); - IOperationResult result = await _client.GetVotes.ExecuteAsync(); - if (result.Data?.Votes != null) - foreach (IGetVotes_Votes vote in result.Data.Votes) - _cache.Add(vote.EntryId, vote.Upvote); - _cacheAge = DateTime.UtcNow; - } - - return _cache.TryGetValue(entryId, out bool upvote) ? upvote : null; - } - finally - { - _lock.Release(); - } - } - - /// - public async Task CastVote(long entryId, bool upvote) - { - await _lock.WaitAsync(); - - try - { - IOperationResult result = await _client.CastVote.ExecuteAsync(new CastVoteInput {EntryId = entryId, Upvote = upvote}); - if (result.IsSuccessResult() && result.Data?.CastVote != null) - _cache[entryId] = upvote; - - return result.Data?.CastVote; - } - finally - { - _lock.Release(); - } - } - - /// - public async Task ClearVote(long entryId) - { - await _lock.WaitAsync(); - - try - { - IOperationResult result = await _client.ClearVote.ExecuteAsync(entryId); - if (result.IsSuccessResult() && result.Data?.ClearVote != null) - _cache.Remove(entryId); - - return result.Data?.ClearVote; - } - finally - { - _lock.Release(); - } - } -} - -public interface IVoteClient -{ - /// - /// Gets the vote status for a specific entry. - /// - /// The ID of the entry - /// A Task containing the vote status. - Task GetVote(long entryId); - - /// - /// Casts a vote for a specific entry. - /// - /// The ID of the entry. - /// A boolean indicating whether the vote is an upvote. - /// A Task containing the cast vote. - Task CastVote(long entryId, bool upvote); - - /// - /// Clears a vote for a specific entry. - /// - /// The ID of the entry - /// A Task containing the vote status. - Task ClearVote(long entryId); -} \ No newline at end of file diff --git a/src/Artemis.WebClient.Workshop/WorkshopConstants.cs b/src/Artemis.WebClient.Workshop/WorkshopConstants.cs index 907ddb843..10807064c 100644 --- a/src/Artemis.WebClient.Workshop/WorkshopConstants.cs +++ b/src/Artemis.WebClient.Workshop/WorkshopConstants.cs @@ -2,10 +2,10 @@ namespace Artemis.WebClient.Workshop; public static class WorkshopConstants { - public const string AUTHORITY_URL = "https://localhost:5001"; - public const string WORKSHOP_URL = "https://localhost:7281"; - // public const string AUTHORITY_URL = "https://identity.artemis-rgb.com"; - // public const string WORKSHOP_URL = "https://workshop.artemis-rgb.com"; + // public const string AUTHORITY_URL = "https://localhost:5001"; + // public const string WORKSHOP_URL = "https://localhost:7281"; + public const string AUTHORITY_URL = "https://identity.artemis-rgb.com"; + public const string WORKSHOP_URL = "https://workshop.artemis-rgb.com"; public const string IDENTITY_CLIENT_NAME = "IdentityApiClient"; public const string WORKSHOP_CLIENT_NAME = "WorkshopApiClient"; } \ No newline at end of file diff --git a/src/Artemis.WebClient.Workshop/graphql.config.yml b/src/Artemis.WebClient.Workshop/graphql.config.yml index 4e6e409e5..9662a514f 100644 --- a/src/Artemis.WebClient.Workshop/graphql.config.yml +++ b/src/Artemis.WebClient.Workshop/graphql.config.yml @@ -2,7 +2,7 @@ schema: schema.graphql extensions: endpoints: Default GraphQL Endpoint: - url: https://localhost:7281/graphql/ + url: https://workshop.artemis-rgb.com/graphql headers: user-agent: JS GraphQL introspect: true diff --git a/src/Artemis.WebClient.Workshop/schema.graphql b/src/Artemis.WebClient.Workshop/schema.graphql index e14597edf..12317cc59 100644 --- a/src/Artemis.WebClient.Workshop/schema.graphql +++ b/src/Artemis.WebClient.Workshop/schema.graphql @@ -56,13 +56,11 @@ type Entry { dependantReleases: [Release!]! description: String! downloads: Long! - downvoteCount: Int! entryType: EntryType! icon: Image iconId: UUID id: Long! images: [Image!]! - isDefault: Boolean! isOfficial: Boolean! latestRelease: Release latestReleaseId: Long @@ -70,10 +68,8 @@ type Entry { name: String! pluginInfo: PluginInfo releases: [Release!]! - score: Int! summary: String! tags: [Tag!]! - upvoteCount: Int! } type Image { @@ -103,8 +99,6 @@ type LayoutInfo { type Mutation { addEntry(input: CreateEntryInput!): Entry addLayoutInfo(input: CreateLayoutInfoInput!): LayoutInfo - castVote(input: CastVoteInput!): Entry - clearVote(entryId: Long!): Entry removeEntry(id: Long!): Entry removeLayoutInfo(id: Long!): LayoutInfo! removeRelease(id: Long!): Release! @@ -174,7 +168,6 @@ type Query { searchKeyboardLayout(deviceProvider: UUID!, logicalLayout: String, model: String!, physicalLayout: KeyboardLayoutType!, vendor: String!): LayoutInfo searchLayout(deviceProvider: UUID!, deviceType: RGBDeviceType!, model: String!, vendor: String!): LayoutInfo submittedEntries(order: [EntrySortInput!], where: EntryFilterInput): [Entry!]! - votes(order: [VoteSortInput!], where: VoteFilterInput): [Vote!]! } type Release { @@ -195,15 +188,6 @@ type Tag { name: String! } -type Vote { - entry: Entry! - entryId: Long! - id: Long! - upvote: Boolean! - userId: UUID! - votedAt: DateTime! -} - enum ApplyPolicy { AFTER_RESOLVER BEFORE_RESOLVER @@ -266,11 +250,6 @@ input BooleanOperationFilterInput { neq: Boolean } -input CastVoteInput { - entryId: Long! - upvote: Boolean! -} - input CategoryFilterInput { and: [CategoryFilterInput!] icon: StringOperationFilterInput @@ -289,7 +268,6 @@ input CreateEntryInput { categories: [Long!]! description: String! entryType: EntryType! - isDefault: Boolean! name: String! summary: String! tags: [String!]! @@ -329,13 +307,11 @@ input EntryFilterInput { dependantReleases: ListFilterInputTypeOfReleaseFilterInput description: StringOperationFilterInput downloads: LongOperationFilterInput - downvoteCount: IntOperationFilterInput entryType: EntryTypeOperationFilterInput icon: ImageFilterInput iconId: UuidOperationFilterInput id: LongOperationFilterInput images: ListFilterInputTypeOfImageFilterInput - isDefault: BooleanOperationFilterInput isOfficial: BooleanOperationFilterInput latestRelease: ReleaseFilterInput latestReleaseId: LongOperationFilterInput @@ -344,10 +320,8 @@ input EntryFilterInput { or: [EntryFilterInput!] pluginInfo: PluginInfoFilterInput releases: ListFilterInputTypeOfReleaseFilterInput - score: IntOperationFilterInput summary: StringOperationFilterInput tags: ListFilterInputTypeOfTagFilterInput - upvoteCount: IntOperationFilterInput } input EntrySortInput { @@ -356,20 +330,16 @@ input EntrySortInput { createdAt: SortEnumType description: SortEnumType downloads: SortEnumType - downvoteCount: SortEnumType entryType: SortEnumType icon: ImageSortInput iconId: SortEnumType id: SortEnumType - isDefault: SortEnumType isOfficial: SortEnumType latestRelease: ReleaseSortInput latestReleaseId: SortEnumType name: SortEnumType pluginInfo: PluginInfoSortInput - score: SortEnumType summary: SortEnumType - upvoteCount: SortEnumType } input EntryTypeOperationFilterInput { @@ -610,7 +580,6 @@ input UpdateEntryInput { categories: [Long!]! description: String! id: Long! - isDefault: Boolean! name: String! summary: String! tags: [String!]! @@ -635,23 +604,3 @@ input UuidOperationFilterInput { nlt: UUID nlte: UUID } - -input VoteFilterInput { - and: [VoteFilterInput!] - entry: EntryFilterInput - entryId: LongOperationFilterInput - id: LongOperationFilterInput - or: [VoteFilterInput!] - upvote: BooleanOperationFilterInput - userId: UuidOperationFilterInput - votedAt: DateTimeOperationFilterInput -} - -input VoteSortInput { - entry: EntrySortInput - entryId: SortEnumType - id: SortEnumType - upvote: SortEnumType - userId: SortEnumType - votedAt: SortEnumType -}