From b7ec5a69a9cf6a16b07c5b98cfb8429a7afffba0 Mon Sep 17 00:00:00 2001 From: Kamigen <46357922+Edouard127@users.noreply.github.com> Date: Sun, 17 Mar 2024 21:03:08 -0400 Subject: [PATCH] Feature: Join us api call --- .../Common/Interfaces/IApplicationDbContext.cs | 2 +- src/Application/DependencyInjection.cs | 1 - .../Commands/CreateFutureCreator.cs} | 12 ++++++------ src/Domain/Entities/FuturCreator.cs | 11 ----------- src/Domain/Entities/FutureCreator.cs | 11 +++++++++++ .../Data/ApplicationDbContext.cs | 2 +- .../20240317201728_AddFuturCreator.cs | 4 ++-- .../ApplicationDbContextModelSnapshot.cs | 4 ++-- src/Web/Endpoints/FuturCreators.cs | 18 ------------------ src/Web/Endpoints/JoinUs.cs | 17 +++++++++++++++++ src/Web/wwwroot/api/specification.json | 17 ++++++----------- 11 files changed, 46 insertions(+), 53 deletions(-) rename src/Application/{FuturCreators/Commands/CreateFuturCreator.cs => FutureCreators/Commands/CreateFutureCreator.cs} (75%) delete mode 100644 src/Domain/Entities/FuturCreator.cs create mode 100644 src/Domain/Entities/FutureCreator.cs delete mode 100644 src/Web/Endpoints/FuturCreators.cs create mode 100644 src/Web/Endpoints/JoinUs.cs diff --git a/src/Application/Common/Interfaces/IApplicationDbContext.cs b/src/Application/Common/Interfaces/IApplicationDbContext.cs index 4e5f1fa..9e35843 100644 --- a/src/Application/Common/Interfaces/IApplicationDbContext.cs +++ b/src/Application/Common/Interfaces/IApplicationDbContext.cs @@ -8,7 +8,7 @@ public interface IApplicationDbContext DbSet TodoItems { get; } - DbSet FuturCreators { get; } + DbSet FutureCreators { get; } Task SaveChangesAsync(CancellationToken cancellationToken); } diff --git a/src/Application/DependencyInjection.cs b/src/Application/DependencyInjection.cs index ebbe093..3ff3e1e 100644 --- a/src/Application/DependencyInjection.cs +++ b/src/Application/DependencyInjection.cs @@ -1,5 +1,4 @@ using System.Reflection; -using Hutopy.Application.Common.Behaviours; namespace Microsoft.Extensions.DependencyInjection; diff --git a/src/Application/FuturCreators/Commands/CreateFuturCreator.cs b/src/Application/FutureCreators/Commands/CreateFutureCreator.cs similarity index 75% rename from src/Application/FuturCreators/Commands/CreateFuturCreator.cs rename to src/Application/FutureCreators/Commands/CreateFutureCreator.cs index 857a440..54f4e70 100644 --- a/src/Application/FuturCreators/Commands/CreateFuturCreator.cs +++ b/src/Application/FutureCreators/Commands/CreateFutureCreator.cs @@ -1,9 +1,9 @@ using Hutopy.Application.Common.Interfaces; using Hutopy.Domain.Entities; -namespace Hutopy.Application.FuturCreators.Commands.CreateFuturCreator; +namespace Hutopy.Application.FutureCreators.Commands; -public record CreateFuturCreatorCommand : IRequest +public record CreateFutureCreatorCommand : IRequest { public required string FirstName { get; init; } public required string LastName { get; init; } @@ -13,7 +13,7 @@ public record CreateFuturCreatorCommand : IRequest public required string ReasonToJoin { get; init; } } -public class CreateFuturCreatorCommandHandler : IRequestHandler +public class CreateFuturCreatorCommandHandler : IRequestHandler { private readonly IApplicationDbContext _context; @@ -23,9 +23,9 @@ public class CreateFuturCreatorCommandHandler : IRequestHandler Handle(CreateFuturCreatorCommand request, CancellationToken cancellationToken) + public async Task Handle(CreateFutureCreatorCommand request, CancellationToken cancellationToken) { - var entity = new FuturCreator() + var entity = new FutureCreator { FirstName = request.FirstName, LastName = request.LastName, @@ -35,7 +35,7 @@ public class CreateFuturCreatorCommandHandler : IRequestHandler, IApplica public DbSet TodoItems => Set(); - public DbSet FuturCreators => Set(); + public DbSet FutureCreators => Set(); protected override void OnModelCreating(ModelBuilder builder) { diff --git a/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.cs b/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.cs index d2de5c0..a65203a 100644 --- a/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.cs +++ b/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.cs @@ -48,7 +48,7 @@ namespace Hutopy.Infrastructure.Data.Migrations oldMaxLength: 128); migrationBuilder.CreateTable( - name: "FuturCreators", + name: "FutureCreators", columns: table => new { Id = table.Column(type: "int", nullable: false) @@ -74,7 +74,7 @@ namespace Hutopy.Infrastructure.Data.Migrations protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( - name: "FuturCreators"); + name: "FutureCreators"); migrationBuilder.AlterColumn( name: "Name", diff --git a/src/Infrastructure/Data/Migrations/ApplicationDbContextModelSnapshot.cs b/src/Infrastructure/Data/Migrations/ApplicationDbContextModelSnapshot.cs index 4b12eb4..0eb80ef 100644 --- a/src/Infrastructure/Data/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/src/Infrastructure/Data/Migrations/ApplicationDbContextModelSnapshot.cs @@ -22,7 +22,7 @@ namespace Hutopy.Infrastructure.Data.Migrations SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); - modelBuilder.Entity("Hutopy.Domain.Entities.FuturCreator", b => + modelBuilder.Entity("Hutopy.Domain.Entities.FutureCreator", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -68,7 +68,7 @@ namespace Hutopy.Infrastructure.Data.Migrations b.HasKey("Id"); - b.ToTable("FuturCreator"); + b.ToTable("FutureCreator"); }); modelBuilder.Entity("Hutopy.Domain.Entities.TodoItem", b => diff --git a/src/Web/Endpoints/FuturCreators.cs b/src/Web/Endpoints/FuturCreators.cs deleted file mode 100644 index 383862a..0000000 --- a/src/Web/Endpoints/FuturCreators.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Hutopy.Application.FuturCreators.Commands.CreateFuturCreator; - -namespace Hutopy.Web.Endpoints; - -public class FuturCreators : EndpointGroupBase -{ - public override void Map(WebApplication app) - { - app.MapGroup(this) - .RequireAuthorization() - .MapPost(CreateFuturCreator); - } - - public Task CreateFuturCreator(ISender sender, CreateFuturCreatorCommand command) - { - return sender.Send(command); - } -} diff --git a/src/Web/Endpoints/JoinUs.cs b/src/Web/Endpoints/JoinUs.cs new file mode 100644 index 0000000..d49265f --- /dev/null +++ b/src/Web/Endpoints/JoinUs.cs @@ -0,0 +1,17 @@ +using Hutopy.Application.FutureCreators.Commands; + +namespace Hutopy.Web.Endpoints; + +public class JoinUs : EndpointGroupBase +{ + public override void Map(WebApplication app) + { + app.MapGroup(this) + .MapPost(CreateFutureCreator); + } + + public Task CreateFutureCreator(ISender sender, CreateFutureCreatorCommand command) + { + return sender.Send(command); + } +} diff --git a/src/Web/wwwroot/api/specification.json b/src/Web/wwwroot/api/specification.json index 2794485..c4ab40c 100644 --- a/src/Web/wwwroot/api/specification.json +++ b/src/Web/wwwroot/api/specification.json @@ -6,18 +6,18 @@ "version": "1.0.0" }, "paths": { - "/api/FuturCreators": { + "/api/JoinUs": { "post": { "tags": [ - "FuturCreators" + "JoinUs" ], - "operationId": "CreateFuturCreator", + "operationId": "CreateFutureCreator", "requestBody": { "x-name": "command", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateFuturCreatorCommand" + "$ref": "#/components/schemas/CreateFutureCreatorCommand" } } }, @@ -36,12 +36,7 @@ } } } - }, - "security": [ - { - "JWT": [] - } - ] + } } }, "/api/TodoItems": { @@ -795,7 +790,7 @@ }, "components": { "schemas": { - "CreateFuturCreatorCommand": { + "CreateFutureCreatorCommand": { "type": "object", "additionalProperties": false, "properties": {