This commit is contained in:
2025-05-04 22:11:28 +08:00
parent 09afa239a6
commit b7eb0f9a68
69 changed files with 344 additions and 178 deletions

View File

@@ -0,0 +1,10 @@
namespace Yes.Blog.Endpoints.Admins.Articles
{
public class ArticleEndpointScheme
{
public int Priority { get; set; } = 3;
public string Prefix { get; set; } = "admin/api";
public string[] Tags { get; set; } = new[] { "Articles" };
}
}

View File

@@ -1,10 +1,11 @@
namespace Yes.Blog.Endpoints.Admins.Articles
{
public class CreateArticleEndpoint : AdminEndpointScheme, IEndpoint
public class CreateArticleEndpoint : ArticleEndpointScheme, IEndpoint
{
public void Map(IEndpointRouteBuilder app) => app.MapPost("/articles", Handle).WithRequestValidation<Request>();
public record Request(
internal record Request(
int CategoryId,
string Title,
string? Slug,
@@ -15,7 +16,7 @@
bool IsDraft
);
public class RequestValidator : AbstractValidator<Request>
internal class RequestValidator : AbstractValidator<Request>
{
public RequestValidator()
{

View File

@@ -1,14 +1,10 @@

namespace Yes.Blog.Endpoints.Admins.Articles
namespace Yes.Blog.Endpoints.Admins.Articles
{
public class DeleteArticleEndpoint : AdminEndpointScheme, IEndpoint
public class DeleteArticleEndpoint : ArticleEndpointScheme, IEndpoint
{
public void Map(IEndpointRouteBuilder app) => app.MapDelete("/articles", Handle);
public record Request(int Id);
internal record Request(int Id);

View File

@@ -1,8 +1,6 @@

namespace Yes.Blog.Endpoints.Admins.Articles
namespace Yes.Blog.Endpoints.Admins.Articles
{
public class GetArticleEndpoint : AdminEndpointScheme, IEndpoint
public class GetArticleEndpoint : ArticleEndpointScheme, IEndpoint
{
public void Map(IEndpointRouteBuilder app) => app.MapGet("/articles/{id}", Handle);

View File

@@ -1,8 +1,6 @@

namespace Yes.Blog.Endpoints.Admins.Articles
namespace Yes.Blog.Endpoints.Admins.Articles
{
public class GetArticlesEndpoint : AdminEndpointScheme, IEndpoint
public class GetArticlesEndpoint : ArticleEndpointScheme, IEndpoint
{
public void Map(IEndpointRouteBuilder app) => app.MapGet("/articles", Handle);

View File

@@ -1,10 +1,8 @@

namespace Yes.Blog.Endpoints.Admins.Articles
namespace Yes.Blog.Endpoints.Admins.Articles
{
public class GetLatestArticlesEndpoint : AdminEndpointScheme, IEndpoint
public class GetLatestArticlesEndpoint : ArticleEndpointScheme, IEndpoint
{
public void Map(IEndpointRouteBuilder app) => app.MapGet("/articles/Latest", Handle);
public void Map(IEndpointRouteBuilder app) => app.MapGet("/articles/latest", Handle);

View File

@@ -1,6 +1,6 @@
namespace Yes.Blog.Endpoints.Admins.Articles
{
public class UpdateArticleEndpoint : AdminEndpointScheme, IEndpoint
public class UpdateArticleEndpoint : ArticleEndpointScheme, IEndpoint
{
public void Map(IEndpointRouteBuilder app) => app.MapPut("/articles", Handle).WithRequestValidation<Request>();