aboutsummaryrefslogtreecommitdiff
path: root/API
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2020-12-12 15:04:45 +0200
committertranstrike <transtrike@gmail.com>2020-12-12 15:04:45 +0200
commit8bd7295dc4694c1c0ed6fbc05d390223bfc4ef05 (patch)
tree380757557eb7ac15809e5f04d224c2e494a327fd /API
parent29b2a82d7ef2613b3e56eba7ed959243a98ae92d (diff)
downloadDevHive-8bd7295dc4694c1c0ed6fbc05d390223bfc4ef05.tar
DevHive-8bd7295dc4694c1c0ed6fbc05d390223bfc4ef05.tar.gz
DevHive-8bd7295dc4694c1c0ed6fbc05d390223bfc4ef05.zip
Added Extensions Methods
Diffstat (limited to 'API')
-rw-r--r--API/Controllers/ErrorController.cs2
-rw-r--r--API/Extensions/ConfigureDatabase.cs42
-rw-r--r--API/Extensions/ConfigureJWT.cs21
-rw-r--r--API/Extensions/ConfigureSwagger.cs23
-rw-r--r--API/Program.cs1
-rw-r--r--API/Startup.cs50
6 files changed, 101 insertions, 38 deletions
diff --git a/API/Controllers/ErrorController.cs b/API/Controllers/ErrorController.cs
index 792d8cd..ffe2159 100644
--- a/API/Controllers/ErrorController.cs
+++ b/API/Controllers/ErrorController.cs
@@ -6,10 +6,10 @@ using Microsoft.AspNetCore.Mvc;
namespace API.Controllers
{
[ApiController]
+ [Route("/api/[controller]")]
public class ErrorController
{
[HttpGet]
- [Route("HttpError")]
public HttpStatusCode HttpError(HttpRequestException exception)
{
Console.WriteLine("WE HERE, BOIIIIIII");
diff --git a/API/Extensions/ConfigureDatabase.cs b/API/Extensions/ConfigureDatabase.cs
new file mode 100644
index 0000000..57560e2
--- /dev/null
+++ b/API/Extensions/ConfigureDatabase.cs
@@ -0,0 +1,42 @@
+using Microsoft.Extensions.DependencyInjection;
+using API.Database;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
+using Data.Models.Classes;
+using Microsoft.AspNetCore.Identity;
+using Microsoft.AspNetCore.Builder;
+
+namespace API.Extensions
+{
+ public static class DatabaseExtensions
+ {
+ public static void DatabaseConfiguration(this IServiceCollection services, IConfiguration configuration)
+ {
+ services.AddDbContext<DevHiveContext>(options =>
+ options.UseNpgsql(configuration.GetConnectionString("DEV")))
+ .AddAuthentication()
+ .AddJwtBearer();
+
+ services.AddIdentity<User, Roles>()
+ .AddEntityFrameworkStores<DevHiveContext>();
+
+ services.AddAuthentication();
+
+ services.Configure<IdentityOptions>(options =>
+ {
+ options.User.RequireUniqueEmail = true;
+
+ options.Password.RequiredLength = 5;
+ });
+ }
+
+ public static void UseDatabaseConfiguration(this IApplicationBuilder app)
+ {
+ app.UseHttpsRedirection();
+ app.UseRouting();
+
+ app.UseAuthentication();
+ app.UseAuthorization();
+ }
+ }
+} \ No newline at end of file
diff --git a/API/Extensions/ConfigureJWT.cs b/API/Extensions/ConfigureJWT.cs
new file mode 100644
index 0000000..f5862f5
--- /dev/null
+++ b/API/Extensions/ConfigureJWT.cs
@@ -0,0 +1,21 @@
+using Microsoft.AspNetCore.Builder;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.OpenApi.Models;
+
+namespace API.Extensions
+{
+ public static class JWTExtensions
+ {
+ public static void JWTConfiguration(this IServiceCollection services)
+ {
+
+ }
+
+ public static void UseJWTConfiguration(this IApplicationBuilder app)
+ {
+
+
+
+ }
+ }
+} \ No newline at end of file
diff --git a/API/Extensions/ConfigureSwagger.cs b/API/Extensions/ConfigureSwagger.cs
new file mode 100644
index 0000000..249eca0
--- /dev/null
+++ b/API/Extensions/ConfigureSwagger.cs
@@ -0,0 +1,23 @@
+using Microsoft.AspNetCore.Builder;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.OpenApi.Models;
+
+namespace API.Extensions
+{
+ public static class SwaggerExtensions
+ {
+ public static void SwaggerConfiguration(this IServiceCollection services)
+ {
+ services.AddSwaggerGen(c =>
+ {
+ c.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" });
+ });
+ }
+
+ public static void UseSwaggerConfiguration(this IApplicationBuilder app)
+ {
+ app.UseSwagger();
+ app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1"));
+ }
+ }
+} \ No newline at end of file
diff --git a/API/Program.cs b/API/Program.cs
index eedd5e1..99ca6e6 100644
--- a/API/Program.cs
+++ b/API/Program.cs
@@ -17,7 +17,6 @@ namespace API
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(opt => opt.ListenLocalhost(HTTPS_PORT));
-
webBuilder.UseStartup<Startup>();
});
}
diff --git a/API/Startup.cs b/API/Startup.cs
index f373f7a..b3d0769 100644
--- a/API/Startup.cs
+++ b/API/Startup.cs
@@ -1,15 +1,11 @@
using System;
-using API.Database;
using AutoMapper;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Identity;
-using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
-using Microsoft.OpenApi.Models;
-using Data.Models.Classes;
+using API.Extensions;
namespace API
{
@@ -27,26 +23,9 @@ namespace API
{
services.AddControllers();
- services.AddDbContext<DevHiveContext>(options =>
- options.UseNpgsql(Configuration.GetConnectionString("DEV")))
- .AddAuthentication()
- .AddJwtBearer();
-
- services.AddIdentity<User, Roles>()
- .AddEntityFrameworkStores<DevHiveContext>();
- services.AddAuthentication();
-
- services.Configure<IdentityOptions>(options =>
- {
- options.User.RequireUniqueEmail = true;
-
- options.Password.RequiredLength = 5;
- });
-
- services.AddSwaggerGen(c =>
- {
- c.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" });
- });
+ services.DatabaseConfiguration(Configuration);
+ services.SwaggerConfiguration();
+ services.JWTConfiguration();
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
}
@@ -56,25 +35,24 @@ namespace API
{
if (env.IsDevelopment())
{
- //app.UseDeveloperExceptionPage();
- app.UseExceptionHandler("/api/Error"); //TESTING
- app.UseSwagger();
- app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1"));
+ app.UseDeveloperExceptionPage();
+ //app.UseExceptionHandler("/api/HttpError");
+ app.UseSwaggerConfiguration();
}
else
{
- app.UseExceptionHandler("/Error");
+ app.UseExceptionHandler("/api/HttpError");
+ app.UseHsts();
}
- app.UseHttpsRedirection();
- app.UseRouting();
-
- app.UseAuthentication();
- app.UseAuthorization();
+ app.UseJWTConfiguration();
app.UseEndpoints(endpoints =>
{
- endpoints.MapControllers();
+ endpoints.MapControllerRoute(
+ name: "default",
+ pattern: "api/{controller}/{action}"
+ );
});
}
}