diff options
| author | transtrike <transtrike@gmail.com> | 2020-12-11 14:35:39 +0200 |
|---|---|---|
| committer | transtrike <transtrike@gmail.com> | 2020-12-11 14:35:39 +0200 |
| commit | 6a85255c78a448256fab68cd361983ffc85f2b03 (patch) | |
| tree | e4b4c3071a59fecf120d8ebddb7d366bdc653628 /API | |
| parent | eb7c817329bcdd9eb520c6760bacf84d6f45f20d (diff) | |
| download | DevHive-6a85255c78a448256fab68cd361983ffc85f2b03.tar DevHive-6a85255c78a448256fab68cd361983ffc85f2b03.tar.gz DevHive-6a85255c78a448256fab68cd361983ffc85f2b03.zip | |
Renamed Models to Data
Diffstat (limited to 'API')
| -rw-r--r-- | API/API.csproj | 2 | ||||
| -rw-r--r-- | API/Controllers/ErrorController.cs | 7 | ||||
| -rw-r--r-- | API/Controllers/UserController.cs | 6 | ||||
| -rw-r--r-- | API/Database/DbRepository.cs | 4 | ||||
| -rw-r--r-- | API/Database/DevHiveContext.cs | 2 | ||||
| -rw-r--r-- | API/Database/UserDbRepository.cs | 4 | ||||
| -rw-r--r-- | API/Migrations/20201210085843_UserAddTest.Designer.cs | 325 | ||||
| -rw-r--r-- | API/Migrations/20201210121627_UserTableImplemented.cs | 44 | ||||
| -rw-r--r-- | API/Migrations/20201211123448_UserTableImplemented.Designer.cs (renamed from API/Migrations/20201210121627_UserTableImplemented.Designer.cs) | 224 | ||||
| -rw-r--r-- | API/Migrations/20201211123448_UserTableImplemented.cs (renamed from API/Migrations/20201210085843_UserAddTest.cs) | 14 | ||||
| -rw-r--r-- | API/Migrations/DevHiveContextModelSnapshot.cs | 222 | ||||
| -rw-r--r-- | API/Service/UserService.cs | 39 | ||||
| -rw-r--r-- | API/Startup.cs | 5 |
13 files changed, 269 insertions, 629 deletions
diff --git a/API/API.csproj b/API/API.csproj index 3232fb9..0ea2d2e 100644 --- a/API/API.csproj +++ b/API/API.csproj @@ -17,6 +17,6 @@ <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.0" /> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\Models\Models.csproj" /> + <ProjectReference Include="..\Data\Data.csproj" /> </ItemGroup> </Project>
\ No newline at end of file diff --git a/API/Controllers/ErrorController.cs b/API/Controllers/ErrorController.cs index 9af73ef..792d8cd 100644 --- a/API/Controllers/ErrorController.cs +++ b/API/Controllers/ErrorController.cs @@ -1,16 +1,19 @@ using System; using System.Net; +using System.Net.Http; using Microsoft.AspNetCore.Mvc; namespace API.Controllers { [ApiController] - [Route("/api/[controller]")] public class ErrorController { [HttpGet] - public HttpStatusCode Error(Exception exception) + [Route("HttpError")] + public HttpStatusCode HttpError(HttpRequestException exception) { + Console.WriteLine("WE HERE, BOIIIIIII"); + return HttpStatusCode.OK; } } diff --git a/API/Controllers/UserController.cs b/API/Controllers/UserController.cs index e8a58b8..3f18dbe 100644 --- a/API/Controllers/UserController.cs +++ b/API/Controllers/UserController.cs @@ -5,8 +5,8 @@ using API.Database; using API.Service; using AutoMapper; using Microsoft.AspNetCore.Mvc; -using Models.Classes; -using Models.DTOs; +using Data.Models.Classes; +using Data.Models.DTOs; namespace API.Controllers { @@ -30,7 +30,7 @@ namespace API.Controllers //Read [HttpGet] - public async Task<string> GetById(int id) + public async Task<User> GetById(int id) { return await this._service.GetUserById(id); } diff --git a/API/Database/DbRepository.cs b/API/Database/DbRepository.cs index a24be36..786062c 100644 --- a/API/Database/DbRepository.cs +++ b/API/Database/DbRepository.cs @@ -1,9 +1,9 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using Models.Interfaces.Database; +using Data.Models.Interfaces.Database; using Microsoft.EntityFrameworkCore; -using Models.Classes; +using Data.Models.Classes; namespace API.Database { diff --git a/API/Database/DevHiveContext.cs b/API/Database/DevHiveContext.cs index 4c342b5..f7bf82a 100644 --- a/API/Database/DevHiveContext.cs +++ b/API/Database/DevHiveContext.cs @@ -1,6 +1,6 @@ using Microsoft.AspNetCore; using Microsoft.EntityFrameworkCore; -using Models.Classes; +using Data.Models.Classes; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.AspNetCore.Identity; diff --git a/API/Database/UserDbRepository.cs b/API/Database/UserDbRepository.cs index a51e3a8..2aa1b55 100644 --- a/API/Database/UserDbRepository.cs +++ b/API/Database/UserDbRepository.cs @@ -1,9 +1,9 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using Models.Interfaces.Database; +using Data.Models.Interfaces.Database; using Microsoft.EntityFrameworkCore; -using Models.Classes; +using Data.Models.Classes; namespace API.Database { diff --git a/API/Migrations/20201210085843_UserAddTest.Designer.cs b/API/Migrations/20201210085843_UserAddTest.Designer.cs deleted file mode 100644 index 1f39c12..0000000 --- a/API/Migrations/20201210085843_UserAddTest.Designer.cs +++ /dev/null @@ -1,325 +0,0 @@ -// <auto-generated /> -using System; -using API.Database; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -namespace API.Migrations -{ - [DbContext(typeof(DevHiveContext))] - [Migration("20201210085843_UserAddTest")] - partial class UserAddTest - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseIdentityByDefaultColumns() - .HasAnnotation("Relational:MaxIdentifierLength", 63) - .HasAnnotation("ProductVersion", "5.0.1"); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole<int>", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .UseIdentityByDefaultColumn(); - - b.Property<string>("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("text"); - - b.Property<string>("Name") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property<string>("NormalizedName") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasDatabaseName("RoleNameIndex"); - - b.ToTable("AspNetRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<int>", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .UseIdentityByDefaultColumn(); - - b.Property<string>("ClaimType") - .HasColumnType("text"); - - b.Property<string>("ClaimValue") - .HasColumnType("text"); - - b.Property<int>("RoleId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<int>", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .UseIdentityByDefaultColumn(); - - b.Property<string>("ClaimType") - .HasColumnType("text"); - - b.Property<string>("ClaimValue") - .HasColumnType("text"); - - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<int>", b => - { - b.Property<string>("LoginProvider") - .HasColumnType("text"); - - b.Property<string>("ProviderKey") - .HasColumnType("text"); - - b.Property<string>("ProviderDisplayName") - .HasColumnType("text"); - - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<int>", b => - { - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.Property<int>("RoleId") - .HasColumnType("integer"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<int>", b => - { - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.Property<string>("LoginProvider") - .HasColumnType("text"); - - b.Property<string>("Name") - .HasColumnType("text"); - - b.Property<string>("Value") - .HasColumnType("text"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("Models.Classes.Language", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .UseIdentityByDefaultColumn(); - - b.HasKey("Id"); - - b.ToTable("Languages"); - }); - - modelBuilder.Entity("Models.Classes.Technology", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .UseIdentityByDefaultColumn(); - - b.HasKey("Id"); - - b.ToTable("Technologies"); - }); - - modelBuilder.Entity("Models.Classes.User", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .UseIdentityByDefaultColumn(); - - b.Property<int>("AccessFailedCount") - .HasColumnType("integer"); - - b.Property<string>("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("text"); - - b.Property<string>("Email") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property<bool>("EmailConfirmed") - .HasColumnType("boolean"); - - b.Property<string>("FirstName") - .IsRequired() - .HasColumnType("text"); - - b.Property<string>("LastName") - .IsRequired() - .HasColumnType("text"); - - b.Property<bool>("LockoutEnabled") - .HasColumnType("boolean"); - - b.Property<DateTimeOffset?>("LockoutEnd") - .HasColumnType("timestamp with time zone"); - - b.Property<string>("NormalizedEmail") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property<string>("NormalizedUserName") - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.Property<string>("PasswordHash") - .HasColumnType("text"); - - b.Property<string>("PhoneNumber") - .HasColumnType("text"); - - b.Property<bool>("PhoneNumberConfirmed") - .HasColumnType("boolean"); - - b.Property<string>("ProfilePicture") - .HasColumnType("text"); - - b.Property<string>("SecurityStamp") - .HasColumnType("text"); - - b.Property<bool>("TwoFactorEnabled") - .HasColumnType("boolean"); - - b.Property<int?>("UserId") - .HasColumnType("integer"); - - b.Property<string>("UserName") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("character varying(256)"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasDatabaseName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasDatabaseName("UserNameIndex"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<int>", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole<int>", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<int>", b => - { - b.HasOne("Models.Classes.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<int>", b => - { - b.HasOne("Models.Classes.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<int>", b => - { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole<int>", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Models.Classes.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<int>", b => - { - b.HasOne("Models.Classes.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Models.Classes.User", b => - { - b.HasOne("Models.Classes.User", null) - .WithMany("Friends") - .HasForeignKey("UserId"); - }); - - modelBuilder.Entity("Models.Classes.User", b => - { - b.Navigation("Friends"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/API/Migrations/20201210121627_UserTableImplemented.cs b/API/Migrations/20201210121627_UserTableImplemented.cs deleted file mode 100644 index ea39ff8..0000000 --- a/API/Migrations/20201210121627_UserTableImplemented.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace API.Migrations -{ - public partial class UserTableImplemented : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_AspNetUsers_AspNetUsers_UserId", - table: "AspNetUsers"); - - migrationBuilder.DropIndex( - name: "IX_AspNetUsers_UserId", - table: "AspNetUsers"); - - migrationBuilder.DropColumn( - name: "UserId", - table: "AspNetUsers"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn<int>( - name: "UserId", - table: "AspNetUsers", - type: "integer", - nullable: true); - - migrationBuilder.CreateIndex( - name: "IX_AspNetUsers_UserId", - table: "AspNetUsers", - column: "UserId"); - - migrationBuilder.AddForeignKey( - name: "FK_AspNetUsers_AspNetUsers_UserId", - table: "AspNetUsers", - column: "UserId", - principalTable: "AspNetUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - } - } -} diff --git a/API/Migrations/20201210121627_UserTableImplemented.Designer.cs b/API/Migrations/20201211123448_UserTableImplemented.Designer.cs index ee570a2..3b0902e 100644 --- a/API/Migrations/20201210121627_UserTableImplemented.Designer.cs +++ b/API/Migrations/20201211123448_UserTableImplemented.Designer.cs @@ -10,7 +10,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace API.Migrations { [DbContext(typeof(DevHiveContext))] - [Migration("20201210121627_UserTableImplemented")] + [Migration("20201211123448_UserTableImplemented")] partial class UserTableImplemented { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -21,108 +21,7 @@ namespace API.Migrations .HasAnnotation("Relational:MaxIdentifierLength", 63) .HasAnnotation("ProductVersion", "5.0.1"); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<int>", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .UseIdentityByDefaultColumn(); - - b.Property<string>("ClaimType") - .HasColumnType("text"); - - b.Property<string>("ClaimValue") - .HasColumnType("text"); - - b.Property<int>("RoleId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<int>", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .UseIdentityByDefaultColumn(); - - b.Property<string>("ClaimType") - .HasColumnType("text"); - - b.Property<string>("ClaimValue") - .HasColumnType("text"); - - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<int>", b => - { - b.Property<string>("LoginProvider") - .HasColumnType("text"); - - b.Property<string>("ProviderKey") - .HasColumnType("text"); - - b.Property<string>("ProviderDisplayName") - .HasColumnType("text"); - - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<int>", b => - { - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.Property<int>("RoleId") - .HasColumnType("integer"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<int>", b => - { - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.Property<string>("LoginProvider") - .HasColumnType("text"); - - b.Property<string>("Name") - .HasColumnType("text"); - - b.Property<string>("Value") - .HasColumnType("text"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("Models.Classes.Language", b => + modelBuilder.Entity("Data.Models.Classes.Language", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() @@ -134,7 +33,7 @@ namespace API.Migrations b.ToTable("Languages"); }); - modelBuilder.Entity("Models.Classes.Roles", b => + modelBuilder.Entity("Data.Models.Classes.Roles", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() @@ -162,7 +61,7 @@ namespace API.Migrations b.ToTable("AspNetRoles"); }); - modelBuilder.Entity("Models.Classes.Technology", b => + modelBuilder.Entity("Data.Models.Classes.Technology", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() @@ -174,7 +73,7 @@ namespace API.Migrations b.ToTable("Technologies"); }); - modelBuilder.Entity("Models.Classes.User", b => + modelBuilder.Entity("Data.Models.Classes.User", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() @@ -254,7 +153,108 @@ namespace API.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<int>", b => { - b.HasOne("Models.Classes.Roles", null) + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .UseIdentityByDefaultColumn(); + + b.Property<string>("ClaimType") + .HasColumnType("text"); + + b.Property<string>("ClaimValue") + .HasColumnType("text"); + + b.Property<int>("RoleId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<int>", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .UseIdentityByDefaultColumn(); + + b.Property<string>("ClaimType") + .HasColumnType("text"); + + b.Property<string>("ClaimValue") + .HasColumnType("text"); + + b.Property<int>("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<int>", b => + { + b.Property<string>("LoginProvider") + .HasColumnType("text"); + + b.Property<string>("ProviderKey") + .HasColumnType("text"); + + b.Property<string>("ProviderDisplayName") + .HasColumnType("text"); + + b.Property<int>("UserId") + .HasColumnType("integer"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<int>", b => + { + b.Property<int>("UserId") + .HasColumnType("integer"); + + b.Property<int>("RoleId") + .HasColumnType("integer"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<int>", b => + { + b.Property<int>("UserId") + .HasColumnType("integer"); + + b.Property<string>("LoginProvider") + .HasColumnType("text"); + + b.Property<string>("Name") + .HasColumnType("text"); + + b.Property<string>("Value") + .HasColumnType("text"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<int>", b => + { + b.HasOne("Data.Models.Classes.Roles", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) @@ -263,7 +263,7 @@ namespace API.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<int>", b => { - b.HasOne("Models.Classes.User", null) + b.HasOne("Data.Models.Classes.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -272,7 +272,7 @@ namespace API.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<int>", b => { - b.HasOne("Models.Classes.User", null) + b.HasOne("Data.Models.Classes.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -281,13 +281,13 @@ namespace API.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<int>", b => { - b.HasOne("Models.Classes.Roles", null) + b.HasOne("Data.Models.Classes.Roles", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("Models.Classes.User", null) + b.HasOne("Data.Models.Classes.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -296,7 +296,7 @@ namespace API.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<int>", b => { - b.HasOne("Models.Classes.User", null) + b.HasOne("Data.Models.Classes.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) diff --git a/API/Migrations/20201210085843_UserAddTest.cs b/API/Migrations/20201211123448_UserTableImplemented.cs index c036a75..2c4082d 100644 --- a/API/Migrations/20201210085843_UserAddTest.cs +++ b/API/Migrations/20201211123448_UserTableImplemented.cs @@ -4,7 +4,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace API.Migrations { - public partial class UserAddTest : Migration + public partial class UserTableImplemented : Migration { protected override void Up(MigrationBuilder migrationBuilder) { @@ -33,7 +33,6 @@ namespace API.Migrations FirstName = table.Column<string>(type: "text", nullable: false), LastName = table.Column<string>(type: "text", nullable: false), ProfilePicture = table.Column<string>(type: "text", nullable: true), - UserId = table.Column<int>(type: "integer", nullable: true), NormalizedUserName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true), Email = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true), NormalizedEmail = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true), @@ -51,12 +50,6 @@ namespace API.Migrations constraints: table => { table.PrimaryKey("PK_AspNetUsers", x => x.Id); - table.ForeignKey( - name: "FK_AspNetUsers_AspNetUsers_UserId", - column: x => x.UserId, - principalTable: "AspNetUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateTable( @@ -221,11 +214,6 @@ namespace API.Migrations column: "NormalizedEmail"); migrationBuilder.CreateIndex( - name: "IX_AspNetUsers_UserId", - table: "AspNetUsers", - column: "UserId"); - - migrationBuilder.CreateIndex( name: "UserNameIndex", table: "AspNetUsers", column: "NormalizedUserName", diff --git a/API/Migrations/DevHiveContextModelSnapshot.cs b/API/Migrations/DevHiveContextModelSnapshot.cs index cf670a2..eb9d6a4 100644 --- a/API/Migrations/DevHiveContextModelSnapshot.cs +++ b/API/Migrations/DevHiveContextModelSnapshot.cs @@ -19,108 +19,7 @@ namespace API.Migrations .HasAnnotation("Relational:MaxIdentifierLength", 63) .HasAnnotation("ProductVersion", "5.0.1"); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<int>", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .UseIdentityByDefaultColumn(); - - b.Property<string>("ClaimType") - .HasColumnType("text"); - - b.Property<string>("ClaimValue") - .HasColumnType("text"); - - b.Property<int>("RoleId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<int>", b => - { - b.Property<int>("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer") - .UseIdentityByDefaultColumn(); - - b.Property<string>("ClaimType") - .HasColumnType("text"); - - b.Property<string>("ClaimValue") - .HasColumnType("text"); - - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<int>", b => - { - b.Property<string>("LoginProvider") - .HasColumnType("text"); - - b.Property<string>("ProviderKey") - .HasColumnType("text"); - - b.Property<string>("ProviderDisplayName") - .HasColumnType("text"); - - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<int>", b => - { - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.Property<int>("RoleId") - .HasColumnType("integer"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<int>", b => - { - b.Property<int>("UserId") - .HasColumnType("integer"); - - b.Property<string>("LoginProvider") - .HasColumnType("text"); - - b.Property<string>("Name") - .HasColumnType("text"); - - b.Property<string>("Value") - .HasColumnType("text"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens"); - }); - - modelBuilder.Entity("Models.Classes.Language", b => + modelBuilder.Entity("Data.Models.Classes.Language", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() @@ -132,7 +31,7 @@ namespace API.Migrations b.ToTable("Languages"); }); - modelBuilder.Entity("Models.Classes.Roles", b => + modelBuilder.Entity("Data.Models.Classes.Roles", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() @@ -160,7 +59,7 @@ namespace API.Migrations b.ToTable("AspNetRoles"); }); - modelBuilder.Entity("Models.Classes.Technology", b => + modelBuilder.Entity("Data.Models.Classes.Technology", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() @@ -172,7 +71,7 @@ namespace API.Migrations b.ToTable("Technologies"); }); - modelBuilder.Entity("Models.Classes.User", b => + modelBuilder.Entity("Data.Models.Classes.User", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() @@ -252,7 +151,108 @@ namespace API.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<int>", b => { - b.HasOne("Models.Classes.Roles", null) + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .UseIdentityByDefaultColumn(); + + b.Property<string>("ClaimType") + .HasColumnType("text"); + + b.Property<string>("ClaimValue") + .HasColumnType("text"); + + b.Property<int>("RoleId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<int>", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .UseIdentityByDefaultColumn(); + + b.Property<string>("ClaimType") + .HasColumnType("text"); + + b.Property<string>("ClaimValue") + .HasColumnType("text"); + + b.Property<int>("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<int>", b => + { + b.Property<string>("LoginProvider") + .HasColumnType("text"); + + b.Property<string>("ProviderKey") + .HasColumnType("text"); + + b.Property<string>("ProviderDisplayName") + .HasColumnType("text"); + + b.Property<int>("UserId") + .HasColumnType("integer"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<int>", b => + { + b.Property<int>("UserId") + .HasColumnType("integer"); + + b.Property<int>("RoleId") + .HasColumnType("integer"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<int>", b => + { + b.Property<int>("UserId") + .HasColumnType("integer"); + + b.Property<string>("LoginProvider") + .HasColumnType("text"); + + b.Property<string>("Name") + .HasColumnType("text"); + + b.Property<string>("Value") + .HasColumnType("text"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<int>", b => + { + b.HasOne("Data.Models.Classes.Roles", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) @@ -261,7 +261,7 @@ namespace API.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<int>", b => { - b.HasOne("Models.Classes.User", null) + b.HasOne("Data.Models.Classes.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -270,7 +270,7 @@ namespace API.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<int>", b => { - b.HasOne("Models.Classes.User", null) + b.HasOne("Data.Models.Classes.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -279,13 +279,13 @@ namespace API.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<int>", b => { - b.HasOne("Models.Classes.Roles", null) + b.HasOne("Data.Models.Classes.Roles", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("Models.Classes.User", null) + b.HasOne("Data.Models.Classes.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -294,7 +294,7 @@ namespace API.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<int>", b => { - b.HasOne("Models.Classes.User", null) + b.HasOne("Data.Models.Classes.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) diff --git a/API/Service/UserService.cs b/API/Service/UserService.cs index d32b31f..a03de45 100644 --- a/API/Service/UserService.cs +++ b/API/Service/UserService.cs @@ -2,10 +2,14 @@ using System.Net; using System.Threading.Tasks; using API.Database; using AutoMapper; -using Models.Classes; -using Models.DTOs; +using Data.Models.Classes; +using Data.Models.DTOs; using Newtonsoft.Json; using System.Web.Http; +using System.Net.Http; +using Npgsql.EntityFrameworkCore.PostgreSQL.Query.ExpressionTranslators.Internal; +using System; +using Microsoft.AspNetCore.Mvc.Routing; namespace API.Service { @@ -22,30 +26,32 @@ namespace API.Service public async Task<HttpStatusCode> CreateUser(UserDTO userDTO) { - if(this._userDbRepository.DoesUsernameExist(userDTO.UserName)) - return HttpStatusCode.Forbidden; + if (this._userDbRepository.DoesUsernameExist(userDTO.UserName)) + ThrowHttpRequestException(HttpStatusCode.BadRequest, "Username already exists!"); User user = this._userMapper.Map<User>(userDTO); await this._userDbRepository.AddAsync(user); - return HttpStatusCode.OK; + return HttpStatusCode.Created; } - public async Task<string> GetUserById(int id) + public async Task<User> GetUserById(int id) { - User user = await this._userDbRepository.FindByIdAsync(id) ?? - throw new HttpResponseException(HttpStatusCode.NotFound); + User user = await this._userDbRepository.FindByIdAsync(id); - return JsonConvert.SerializeObject(user); + if (user == null) + ThrowHttpRequestException(HttpStatusCode.NotFound); + + return user; } public async Task<HttpStatusCode> UpdateUser(int id, UserDTO userDTO) { if (!this._userDbRepository.DoesUserExist(id)) - return HttpStatusCode.NotFound; + ThrowHttpRequestException(HttpStatusCode.NotFound); if (this._userDbRepository.DoesUsernameExist(userDTO.UserName)) - return HttpStatusCode.Forbidden; + ThrowHttpRequestException(HttpStatusCode.Forbidden); User user = this._userMapper.Map<User>(userDTO); await this._userDbRepository.EditAsync(id, user); @@ -62,5 +68,16 @@ namespace API.Service return HttpStatusCode.OK; } + + private void ThrowHttpRequestException(HttpStatusCode statusCode, string errorMessage = "") + { + HttpResponseMessage message = new() + { + StatusCode = statusCode, + Content = new StringContent(errorMessage) + }; + + throw new HttpResponseException(message); + } } } diff --git a/API/Startup.cs b/API/Startup.cs index 796f13a..f373f7a 100644 --- a/API/Startup.cs +++ b/API/Startup.cs @@ -9,7 +9,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi.Models;
-using Models.Classes;
+using Data.Models.Classes;
namespace API
{
@@ -56,7 +56,8 @@ namespace API {
if (env.IsDevelopment())
{
- app.UseDeveloperExceptionPage();
+ //app.UseDeveloperExceptionPage();
+ app.UseExceptionHandler("/api/Error"); //TESTING
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1"));
}
|
