Dependency update #70

Merged
kdeng00 merged 5 commits from dependency-update into master 2021-08-01 20:08:26 -04:00
3 changed files with 96 additions and 100 deletions
Showing only changes of commit 560773bfff - Show all commits
+1 -1
View File
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel> <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup> </PropertyGroup>
+24 -24
View File
@@ -7,6 +7,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore; using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using NLog.Web; using NLog.Web;
@@ -16,32 +17,31 @@ namespace Icarus
{ {
public static void Main(string[] args) public static void Main(string[] args)
{ {
var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger(); var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
try try
{ {
logger.Debug("init main"); logger.Debug("init main");
CreateWebHostBuilder(args).Build().Run();
} CreateHostBuilder(args).Build().Run();
catch (Exception ex) }
{ catch (Exception ex)
logger.Error(ex, "An error occurred"); {
throw; logger.Error(ex, "An error occurred");
} throw;
finally }
{ finally
NLog.LogManager.Shutdown(); {
} NLog.LogManager.Shutdown();
}
} }
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => public static IHostBuilder CreateHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).UseStartup<Startup>() // TODO: Need to add Logging support and maybe adding CLI port support
.UseUrls("http://localhost:5002") Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging => .ConfigureWebHostDefaults(webBuilder =>
{ {
logging.ClearProviders(); webBuilder.UseStartup<Startup>();
logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); });
})
.UseNLog();
} }
} }
+71 -75
View File
@@ -41,66 +41,65 @@ namespace Icarus
// This method gets called by the runtime. Use this method to add services to the container. // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) public void ConfigureServices(IServiceCollection services)
{ {
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddControllers();
services.AddSingleton<IConfiguration>(Configuration);
string domain = $"https://{Configuration["Auth0:Domain"]}/"; string domain = $"https://{Configuration["Auth0:Domain"]}/";
services.AddAuthentication(options => services.AddAuthentication(options =>
{ {
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options => }).AddJwtBearer(options =>
{ {
options.Authority = domain; options.Authority = domain;
options.Audience = Configuration["Auth0:ApiIdentifier"]; options.Audience = Configuration["Auth0:ApiIdentifier"];
}); });
services.AddAuthorization(options => services.AddAuthorization(options =>
{ {
options.AddPolicy("download:songs", policy => options.AddPolicy("download:songs", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("download:songs", domain))); .Add(new HasScopeRequirement("download:songs", domain)));
options.AddPolicy("download:cover_art", policy => options.AddPolicy("download:cover_art", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("download:cover_art", domain))); .Add(new HasScopeRequirement("download:cover_art", domain)));
options.AddPolicy("upload:songs", policy => options.AddPolicy("upload:songs", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("upload:songs", domain))); .Add(new HasScopeRequirement("upload:songs", domain)));
options.AddPolicy("delete:songs", policy => options.AddPolicy("delete:songs", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("delete:songs", domain))); .Add(new HasScopeRequirement("delete:songs", domain)));
options.AddPolicy("read:song_details", policy => options.AddPolicy("read:song_details", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("read:song_details", domain))); .Add(new HasScopeRequirement("read:song_details", domain)));
options.AddPolicy("update:songs", policy => options.AddPolicy("update:songs", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("update:songs", domain))); .Add(new HasScopeRequirement("update:songs", domain)));
options.AddPolicy("read:artists", policy => options.AddPolicy("read:artists", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("read:artists", domain))); .Add(new HasScopeRequirement("read:artists", domain)));
options.AddPolicy("read:albums", policy => options.AddPolicy("read:albums", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("read:albums", domain))); .Add(new HasScopeRequirement("read:albums", domain)));
options.AddPolicy("read:genre", policy => options.AddPolicy("read:genre", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("read:genre", domain))); .Add(new HasScopeRequirement("read:genre", domain)));
options.AddPolicy("read:year", policy => options.AddPolicy("read:year", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("read:year", domain))); .Add(new HasScopeRequirement("read:year", domain)));
options.AddPolicy("stream:songs", policy => options.AddPolicy("stream:songs", policy =>
policy.Requirements policy.Requirements
.Add(new HasScopeRequirement("stream:songs", domain))); .Add(new HasScopeRequirement("stream:songs", domain)));
}); });
@@ -108,50 +107,47 @@ namespace Icarus
var connString = Configuration.GetConnectionString("DefaultConnection"); var connString = Configuration.GetConnectionString("DefaultConnection");
services.Add(new ServiceDescriptor(typeof(SongRepository), services.Add(new ServiceDescriptor(typeof(SongRepository),
new SongRepository(Configuration.GetConnectionString("DefaultConnection")))); new SongRepository(connString)));
services.Add(new ServiceDescriptor(typeof(AlbumRepository), services.Add(new ServiceDescriptor(typeof(AlbumRepository),
new AlbumRepository(Configuration.GetConnectionString("DefaultConnection")))); new AlbumRepository(connString)));
services.Add(new ServiceDescriptor(typeof(ArtistRepository), services.Add(new ServiceDescriptor(typeof(ArtistRepository),
new ArtistRepository(Configuration.GetConnectionString("DefaultConnection")))); new ArtistRepository(connString)));
services.Add(new ServiceDescriptor(typeof(GenreRepository), services.Add(new ServiceDescriptor(typeof(GenreRepository),
new GenreRepository(Configuration.GetConnectionString("DefaultConnection")))); new GenreRepository(connString)));
services.Add(new ServiceDescriptor(typeof(YearRepository), services.Add(new ServiceDescriptor(typeof(YearRepository),
new YearRepository(Configuration.GetConnectionString("DefaultConnection")))); new YearRepository(connString)));
services.Add(new ServiceDescriptor(typeof(CoverArtRepository), services.Add(new ServiceDescriptor(typeof(CoverArtRepository),
new CoverArtRepository(Configuration.GetConnectionString("DefaultConnection")))); new CoverArtRepository(connString)));
services.Add(new ServiceDescriptor(typeof(UserRepository), services.Add(new ServiceDescriptor(typeof(UserRepository),
new UserRepository(Configuration.GetConnectionString("DefaultConnection")))); new UserRepository(connString)));
services.AddDbContext<SongContext>(options => options.UseMySQL(connString)); services.AddDbContext<SongContext>(options => options.UseMySQL(connString));
services.AddDbContext<AlbumContext>(options => options.UseMySQL(connString)); services.AddDbContext<AlbumContext>(options => options.UseMySQL(connString));
services.AddDbContext<ArtistContext>(options => options.UseMySQL(connString)); services.AddDbContext<ArtistContext>(options => options.UseMySQL(connString));
services.AddDbContext<UserContext>(options => options.UseMySQL(connString)); services.AddDbContext<UserContext>(options => options.UseMySQL(connString));
services.AddDbContext<GenreContext>(options => options.UseMySQL(connString)); services.AddDbContext<GenreContext>(options => options.UseMySQL(connString));
services.AddDbContext<YearContext>(options => options.UseMySQL(connString)); services.AddDbContext<YearContext>(options => options.UseMySQL(connString));
services.AddDbContext<CoverArtContext>(options => options.UseMySQL(connString)); services.AddDbContext<CoverArtContext>(options => options.UseMySQL(connString));
} }
// Called by the runtime. Use this method to configure the HTTP request pipeline. // Called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env) public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{ {
if (env.IsDevelopment()) // NOTE: Dev-related configuration can be done when env.IsDevelopment() evaluated to true
app.UseDeveloperExceptionPage();
else
// The default HSTS value is 30 days.
// You may want to change this for production scenarios
app.UseHsts();
app.UseAuthentication(); app.UseRouting();
app.UseAuthorization();
app.UseHttpsRedirection(); app.UseEndpoints(endpoints =>
app.UseMvc(); {
endpoints.MapControllers();
});
} }
} }
} }