Browse Source

Refactor endpoints & change middleware usage

pull/17642/head
Enis Necipoglu 3 years ago
parent
commit
a6fe25595d
No known key found for this signature in database GPG Key ID: 1EC55E13241E1680
  1. 22
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs
  2. 2
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheKey.cs
  3. 14
      modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/cms-kit-generate-proxy.json
  4. 1
      modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/generate-proxy.ps1
  5. 9
      modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs
  6. 24
      modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPagesMiddlewareExtensions.cs
  7. 11
      modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs

22
modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs

@ -36,6 +36,11 @@ using Volo.CmsKit.Reactions;
using Volo.CmsKit.Tags;
using Volo.CmsKit.Web;
using Volo.CmsKit.Web.Contents;
using Microsoft.AspNetCore.Routing;
using Microsoft.AspNetCore.Mvc.Routing;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Volo.Abp.DependencyInjection;
#if EntityFrameworkCore
using Volo.Abp.SettingManagement.EntityFrameworkCore;
@ -54,7 +59,6 @@ using Volo.Abp.TenantManagement.MongoDB;
using Volo.Abp.Identity.MongoDB;
using Volo.Abp.PermissionManagement.MongoDB;
using Volo.Abp.FeatureManagement.MongoDB;
using Volo.Abp.MongoDB;
using Volo.Abp.BlobStoring.Database.MongoDB;
using Volo.Abp.AuditLogging.MongoDB;
using Volo.CmsKit.MongoDB;
@ -247,6 +251,7 @@ public class CmsKitWebUnifiedModule : AbpModule
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCmsKitPagesMiddleware();
app.UseRouting();
app.UseAuthentication();
@ -266,6 +271,7 @@ public class CmsKitWebUnifiedModule : AbpModule
app.UseAuditing();
app.UseAbpSerilogEnrichers();
app.UseConfiguredEndpoints();
using (var scope = context.ServiceProvider.CreateScope())
@ -279,3 +285,17 @@ public class CmsKitWebUnifiedModule : AbpModule
}
}
}
public class CmsKitPageRouteValueTransformer : DynamicRouteValueTransformer, ITransientDependency
{
public override ValueTask<RouteValueDictionary> TransformAsync(HttpContext httpContext, RouteValueDictionary values)
{
if (values.TryGetValue("slug", out var slug))
{
values["page"] = "/Pages/Public/CmsKit/Pages/Index";
values["slug"] = slug;
}
return new ValueTask<RouteValueDictionary>(values);
}
}

2
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheKey.cs

@ -10,6 +10,6 @@ public class PageCacheKey
public override string ToString()
{
return $"Page_{Slug}";
return $"CmsPage_{Slug}";
}
}

14
modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/cms-kit-generate-proxy.json

@ -862,7 +862,7 @@
"uniqueName": "FindBySlugAsyncBySlug",
"name": "FindBySlugAsync",
"httpMethod": "GET",
"url": "api/cms-kit-public/pages/{slug}",
"url": "api/cms-kit-public/pages/by-slug",
"supportedVersions": [],
"parametersOnMethod": [
{
@ -883,8 +883,8 @@
"typeSimple": "string",
"isOptional": false,
"defaultValue": null,
"constraintTypes": [],
"bindingSourceId": "Path",
"constraintTypes": null,
"bindingSourceId": "Query",
"descriptorName": ""
}
],
@ -899,7 +899,7 @@
"uniqueName": "FindDefaultHomePageAsync",
"name": "FindDefaultHomePageAsync",
"httpMethod": "GET",
"url": "api/cms-kit-public/pages",
"url": "api/cms-kit-public/pages/home",
"supportedVersions": [],
"parametersOnMethod": [],
"parameters": [],
@ -914,7 +914,7 @@
"uniqueName": "DoesSlugExistAsyncBySlug",
"name": "DoesSlugExistAsync",
"httpMethod": "GET",
"url": "api/cms-kit-public/pages/{slug}/exist",
"url": "api/cms-kit-public/pages/check",
"supportedVersions": [],
"parametersOnMethod": [
{
@ -935,8 +935,8 @@
"typeSimple": "string",
"isOptional": false,
"defaultValue": null,
"constraintTypes": [],
"bindingSourceId": "Path",
"constraintTypes": null,
"bindingSourceId": "Query",
"descriptorName": ""
}
],

1
modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/generate-proxy.ps1

@ -0,0 +1 @@
abp generate-proxy -t csharp -url https://localhost:44349 -m cms-kit --without-contracts

9
modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs

@ -25,21 +25,22 @@ public class PagesPublicController : CmsKitPublicControllerBase, IPagePublicAppS
}
[HttpGet]
[Route("{slug}")]
public virtual Task<PageDto> FindBySlugAsync(string slug)
[Route("by-slug")]
public virtual Task<PageDto> FindBySlugAsync([FromQuery]string slug)
{
return PageAppService.FindBySlugAsync(slug);
}
[HttpGet]
[Route("home")]
public virtual Task<PageDto> FindDefaultHomePageAsync()
{
return PageAppService.FindDefaultHomePageAsync();
}
[HttpGet]
[Route("{slug}/exist")]
public virtual Task<bool> DoesSlugExistAsync([NotNull] string slug)
[Route("check")]
public virtual Task<bool> DoesSlugExistAsync([NotNull][FromQuery] string slug)
{
return PageAppService.DoesSlugExistAsync(slug);
}

24
modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPagesMiddlewareExtensions.cs

@ -1,4 +1,6 @@
using Microsoft.AspNetCore.Builder;
using System;
using System.Collections.Generic;
using Microsoft.AspNetCore.Builder;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.GlobalFeatures;
@ -6,13 +8,33 @@ namespace Volo.CmsKit.Public.Web;
public static class CmsKitPagesMiddlewareExtensions
{
private const string UseCmsKitHomePageMiddlewareKey = "UseCmsKitHomePageMiddleware";
[Obsolete("Use UseCmsKitPagesMiddleware instead.")]
public static IApplicationBuilder UseCmsKitHomePageMiddleware(this IApplicationBuilder builder)
{
if (!GlobalFeatureManager.Instance.IsEnabled<PagesFeature>())
{
return builder;
}
builder.Properties[UseCmsKitHomePageMiddlewareKey] = true;
return builder.UseMiddleware<DefaultHomePageMiddleware>();
}
public static IApplicationBuilder UseCmsKitPagesMiddleware(this IApplicationBuilder builder)
{
if (!GlobalFeatureManager.Instance.IsEnabled<PagesFeature>())
{
return builder;
}
if (!builder.Properties.ContainsKey(UseCmsKitHomePageMiddlewareKey))
{
builder.Properties[UseCmsKitHomePageMiddlewareKey] = true;
builder.UseMiddleware<DefaultHomePageMiddleware>();
}
return builder.UseMiddleware<PageRoutingMiddleware>();
}
}

11
modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs

@ -104,15 +104,4 @@ public class CmsKitPublicWebModule : AbpModule
}
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
if (GlobalFeatureManager.Instance.IsEnabled<PagesFeature>())
{
app.UseCmsKitHomePageMiddleware();
app.UseCmsKitPagesMiddleware();
}
}
}

Loading…
Cancel
Save