From d565d0c98ba4776a471dee4356ccda7cf454cb41 Mon Sep 17 00:00:00 2001 From: Dominic Villemure Date: Sun, 17 Mar 2024 16:59:20 -0400 Subject: [PATCH] CleanUp and added migration --- Directory.Build.props | 2 +- .../Interfaces/IApplicationDbContext.cs | 2 +- .../Commands/CreateFuturCreator.cs | 5 +- src/Domain/Entities/FuturCreator.cs | 2 + .../Data/ApplicationDbContext.cs | 2 +- ...20240317201728_AddFuturCreator.Designer.cs | 8 +-- .../20240317201728_AddFuturCreator.cs | 8 +-- src/Web/Endpoints/FuturCreators.cs | 18 ++++++ src/Web/wwwroot/api/specification.json | 62 +++++++++++++++++++ 9 files changed, 96 insertions(+), 13 deletions(-) rename src/Application/{FuturCreator => FuturCreators}/Commands/CreateFuturCreator.cs (89%) create mode 100644 src/Web/Endpoints/FuturCreators.cs diff --git a/Directory.Build.props b/Directory.Build.props index ffa84fe..fad896c 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,7 +2,7 @@ net8.0 - true + false enable enable diff --git a/src/Application/Common/Interfaces/IApplicationDbContext.cs b/src/Application/Common/Interfaces/IApplicationDbContext.cs index c393783..4e5f1fa 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 FuturCreator { get; } + DbSet FuturCreators { get; } Task SaveChangesAsync(CancellationToken cancellationToken); } diff --git a/src/Application/FuturCreator/Commands/CreateFuturCreator.cs b/src/Application/FuturCreators/Commands/CreateFuturCreator.cs similarity index 89% rename from src/Application/FuturCreator/Commands/CreateFuturCreator.cs rename to src/Application/FuturCreators/Commands/CreateFuturCreator.cs index 82db619..857a440 100644 --- a/src/Application/FuturCreator/Commands/CreateFuturCreator.cs +++ b/src/Application/FuturCreators/Commands/CreateFuturCreator.cs @@ -1,6 +1,7 @@ using Hutopy.Application.Common.Interfaces; +using Hutopy.Domain.Entities; -namespace Hutopy.Application.TodoItems.Commands.CreateFuturCreator; +namespace Hutopy.Application.FuturCreators.Commands.CreateFuturCreator; public record CreateFuturCreatorCommand : IRequest { @@ -34,7 +35,7 @@ public class CreateFuturCreatorCommandHandler : IRequestHandler, IApplica public DbSet TodoItems => Set(); - public DbSet FuturCreator => Set(); + public DbSet FuturCreators => Set(); protected override void OnModelCreating(ModelBuilder builder) { diff --git a/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.Designer.cs b/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.Designer.cs index 12219ef..9244599 100644 --- a/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.Designer.cs +++ b/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.Designer.cs @@ -12,8 +12,8 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Hutopy.Infrastructure.Data.Migrations { [DbContext(typeof(ApplicationDbContext))] - [Migration("20240317201728_AddFuturCreator")] - partial class AddFuturCreator + [Migration("20240317201728_AddFuturCreators")] + partial class AddfuturCreators { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -25,7 +25,7 @@ namespace Hutopy.Infrastructure.Data.Migrations SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); - modelBuilder.Entity("FuturCreator", b => + modelBuilder.Entity("FuturCreators", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -71,7 +71,7 @@ namespace Hutopy.Infrastructure.Data.Migrations b.HasKey("Id"); - b.ToTable("FuturCreator"); + b.ToTable("FuturCreators"); }); modelBuilder.Entity("Hutopy.Domain.Entities.TodoItem", b => diff --git a/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.cs b/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.cs index 21a742f..d2de5c0 100644 --- a/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.cs +++ b/src/Infrastructure/Data/Migrations/20240317201728_AddFuturCreator.cs @@ -6,7 +6,7 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace Hutopy.Infrastructure.Data.Migrations { /// - public partial class AddFuturCreator : Migration + public partial class AddFuturCreators : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) @@ -48,7 +48,7 @@ namespace Hutopy.Infrastructure.Data.Migrations oldMaxLength: 128); migrationBuilder.CreateTable( - name: "FuturCreator", + name: "FuturCreators", columns: table => new { Id = table.Column(type: "int", nullable: false) @@ -66,7 +66,7 @@ namespace Hutopy.Infrastructure.Data.Migrations }, constraints: table => { - table.PrimaryKey("PK_FuturCreator", x => x.Id); + table.PrimaryKey("PK_FuturCreators", x => x.Id); }); } @@ -74,7 +74,7 @@ namespace Hutopy.Infrastructure.Data.Migrations protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( - name: "FuturCreator"); + name: "FuturCreators"); migrationBuilder.AlterColumn( name: "Name", diff --git a/src/Web/Endpoints/FuturCreators.cs b/src/Web/Endpoints/FuturCreators.cs new file mode 100644 index 0000000..383862a --- /dev/null +++ b/src/Web/Endpoints/FuturCreators.cs @@ -0,0 +1,18 @@ +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/wwwroot/api/specification.json b/src/Web/wwwroot/api/specification.json index a8d81f4..2794485 100644 --- a/src/Web/wwwroot/api/specification.json +++ b/src/Web/wwwroot/api/specification.json @@ -6,6 +6,44 @@ "version": "1.0.0" }, "paths": { + "/api/FuturCreators": { + "post": { + "tags": [ + "FuturCreators" + ], + "operationId": "CreateFuturCreator", + "requestBody": { + "x-name": "command", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFuturCreatorCommand" + } + } + }, + "required": true, + "x-position": 1 + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "security": [ + { + "JWT": [] + } + ] + } + }, "/api/TodoItems": { "get": { "tags": [ @@ -757,6 +795,30 @@ }, "components": { "schemas": { + "CreateFuturCreatorCommand": { + "type": "object", + "additionalProperties": false, + "properties": { + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "socialNetworkAccount": { + "type": "string" + }, + "reasonToJoin": { + "type": "string" + } + } + }, "PaginatedListOfTodoItemBriefDto": { "type": "object", "additionalProperties": false,