Skip to content

Commit

Permalink
VCST-2376: update GraphQL.NET to v8 (#13)
Browse files Browse the repository at this point in the history
  • Loading branch information
ksavosteev authored Jan 27, 2025
1 parent 6f0f366 commit fc768d7
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 22 deletions.
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Project>
<!-- These properties will be shared for all projects -->
<PropertyGroup>
<VersionPrefix>3.816.0</VersionPrefix>
<VersionPrefix>3.900.0</VersionPrefix>
<VersionSuffix></VersionSuffix>
<VersionSuffix Condition=" '$(VersionSuffix)' != '' AND '$(BuildNumber)' != '' ">$(VersionSuffix)-$(BuildNumber)</VersionSuffix>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using System.Threading.Tasks;
using GraphQL;
using GraphQL.Resolvers;
using GraphQL.Subscription;
using GraphQL.Types;
using Microsoft.AspNetCore.Authorization;
using VirtoCommerce.PushMessages.ExperienceApi.Authorization;
Expand All @@ -20,12 +19,12 @@ public class PushMessagesSchema(IPushMessageHub eventBroker, IAuthorizationServi
{
public void Build(ISchema schema)
{
var messageAddedEventStreamFieldType = new EventStreamFieldType
var messageAddedEventStreamFieldType = new FieldType
{
Name = "pushMessageCreated",
Type = GraphTypeExtenstionHelper.GetActualType<NonNullGraphType<PushMessageType>>(),
Type = GraphTypeExtensionHelper.GetActualType<NonNullGraphType<PushMessageType>>(),
Resolver = new FuncFieldResolver<ExpPushMessage>(ResolveMessage),
AsyncSubscriber = new AsyncEventStreamResolver<ExpPushMessage>(Subscribe)
StreamResolver = new SourceStreamResolver<ExpPushMessage>(Subscribe)
};
schema.Subscription.AddField(messageAddedEventStreamFieldType);
}
Expand All @@ -35,7 +34,7 @@ private ExpPushMessage ResolveMessage(IResolveFieldContext context)
return context.Source as ExpPushMessage;
}

private async Task<IObservable<ExpPushMessage>> Subscribe(IResolveEventStreamContext context)
private async ValueTask<IObservable<ExpPushMessage>> Subscribe(IResolveFieldContext context)
{
var authorizationResult = await authorizationService.AuthorizeAsync(context.GetCurrentPrincipal(), null, new PushMessagesAuthorizationRequirement());
if (!authorizationResult.Succeeded)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="VirtoCommerce.Xapi.Core" Version="3.814.0" />
<PackageReference Include="VirtoCommerce.Xapi.Core" Version="3.900.0" />
<PackageReference Include="VirtoCommerce.Platform.Caching" Version="3.853.0" />
</ItemGroup>
<ItemGroup>
Expand Down
20 changes: 8 additions & 12 deletions src/VirtoCommerce.PushMessages.Web/Module.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
using System;
using GraphQL.Server;
using MediatR;
using GraphQL;
using GraphQL.MicrosoftDI;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using VirtoCommerce.CustomerModule.Core.Events;
using VirtoCommerce.Platform.Core.Events;
using VirtoCommerce.Platform.Core.Modularity;
Expand All @@ -32,7 +31,6 @@
using VirtoCommerce.StoreModule.Core.Model;
using VirtoCommerce.Xapi.Core.Extensions;
using VirtoCommerce.Xapi.Core.Infrastructure;
using VirtoCommerce.Xapi.Core.Models;

namespace VirtoCommerce.PushMessages.Web;

Expand Down Expand Up @@ -83,12 +81,11 @@ public void Initialize(IServiceCollection serviceCollection)
serviceCollection.AddSingleton<IPushMessageJobService, PushMessageJobService>();

// GraphQL
var assemblyMarker = typeof(AssemblyMarker);
var graphQlBuilder = new CustomGraphQLBuilder(serviceCollection);
graphQlBuilder.AddGraphTypes(assemblyMarker);
serviceCollection.AddMediatR(assemblyMarker);
serviceCollection.AddAutoMapper(assemblyMarker);
serviceCollection.AddSchemaBuilders(assemblyMarker);
_ = new GraphQLBuilder(serviceCollection, builder =>
{
builder.AddSchema(serviceCollection, typeof(AssemblyMarker));
});

serviceCollection.AddDistributedMessageService(Configuration);
serviceCollection.AddSingleton<XapiPushMessageRecipientChangedEventHandler>();
serviceCollection.AddSingleton<IAuthorizationHandler, PushMessagesAuthorizationHandler>();
Expand All @@ -99,8 +96,7 @@ public void PostInitialize(IApplicationBuilder appBuilder)
{
var serviceProvider = appBuilder.ApplicationServices;

var playgroundOptions = appBuilder.ApplicationServices.GetService<IOptions<GraphQLPlaygroundOptions>>();
appBuilder.UseSchemaGraphQL<ScopedSchemaFactory<AssemblyMarker>>(playgroundOptions?.Value?.Enable ?? true, "pushMessages");
appBuilder.UseScopedSchema<AssemblyMarker>("pushMessages");

// Register settings
var settingsRegistrar = serviceProvider.GetRequiredService<ISettingsRegistrar>();
Expand Down
6 changes: 3 additions & 3 deletions src/VirtoCommerce.PushMessages.Web/module.manifest
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<id>VirtoCommerce.PushMessages</id>
<version>3.816.0</version>
<version>3.900.0</version>
<version-tag></version-tag>

<platformVersion>3.853.0</platformVersion>
<dependencies>
<dependency id="VirtoCommerce.Customer" version="3.817.0" />
<dependency id="VirtoCommerce.Xapi" version="3.814.0" />
<dependency id="VirtoCommerce.Xapi" version="3.900.0" />
</dependencies>

<title>Push Messages</title>
Expand Down Expand Up @@ -37,7 +37,7 @@
<moduleType>VirtoCommerce.PushMessages.Web.Module, VirtoCommerce.PushMessages.Web</moduleType>

<releaseNotes>First version.</releaseNotes>
<copyright>Copyright © 2024 VirtoCommerce. All rights reserved</copyright>
<copyright>Copyright © 2024–2025 VirtoCommerce. All rights reserved</copyright>
<tags>extension module</tags>
<useFullTypeNameInSwagger>false</useFullTypeNameInSwagger>
</module>

0 comments on commit fc768d7

Please sign in to comment.