Merge branch 'cswimr/add-src' into CornHusker/add-db
This commit is contained in:
commit
db7ff97a20
4 changed files with 201 additions and 43 deletions
38
Program.cs
38
Program.cs
|
@ -1,11 +1,12 @@
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using Microsoft.AspNetCore.Components.QuickGrid.EntityFrameworkAdapter;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.OpenApi.Models;
|
using Microsoft.OpenApi.Models;
|
||||||
using ZenithInfo.Components;
|
using ZenithInfo.Components;
|
||||||
using ZenithInfo.Models;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
using Microsoft.AspNetCore.Components.QuickGrid.EntityFrameworkAdapter;
|
|
||||||
using ZenithInfo.Data;
|
using ZenithInfo.Data;
|
||||||
|
using ZenithInfo.Models;
|
||||||
|
using ZenithInfo.Util.SwaggerTheme;
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
@ -23,7 +24,8 @@ if (config?.GlobalToken == "CHANGE-ME")
|
||||||
// Initialize Database
|
// Initialize Database
|
||||||
builder.Services.AddQuickGridEntityFrameworkAdapter();
|
builder.Services.AddQuickGridEntityFrameworkAdapter();
|
||||||
builder.Services.AddDbContextFactory<ZenithInfoContext>(options =>
|
builder.Services.AddDbContextFactory<ZenithInfoContext>(options =>
|
||||||
options.UseNpgsql(builder.Configuration.GetConnectionString("ZenithInfoContext")));
|
options.UseNpgsql(builder.Configuration.GetConnectionString("ZenithInfoContext"))
|
||||||
|
);
|
||||||
|
|
||||||
// Sentry
|
// Sentry
|
||||||
if (config?.UseSentry == true)
|
if (config?.UseSentry == true)
|
||||||
|
@ -37,7 +39,15 @@ builder.Services.AddHttpLogging(o => { });
|
||||||
builder.Services.AddEndpointsApiExplorer();
|
builder.Services.AddEndpointsApiExplorer();
|
||||||
builder.Services.AddSwaggerGen(opts =>
|
builder.Services.AddSwaggerGen(opts =>
|
||||||
{
|
{
|
||||||
opts.SwaggerDoc("v1", new OpenApiInfo { Title = "Zenith Info API", Version = "v1" });
|
opts.SwaggerDoc(
|
||||||
|
"v1",
|
||||||
|
new OpenApiInfo
|
||||||
|
{
|
||||||
|
Title = "Zenith Info API",
|
||||||
|
Version = "v1",
|
||||||
|
Description = "Zenith's official information provider!",
|
||||||
|
}
|
||||||
|
);
|
||||||
opts.AddSecurityDefinition(
|
opts.AddSecurityDefinition(
|
||||||
"Bearer",
|
"Bearer",
|
||||||
new OpenApiSecurityScheme
|
new OpenApiSecurityScheme
|
||||||
|
@ -75,10 +85,16 @@ builder.Services.AddSwaggerGen(opts =>
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
|
var assembly = Assembly.GetExecutingAssembly();
|
||||||
|
foreach (var resource in assembly.GetManifestResourceNames())
|
||||||
|
{
|
||||||
|
app.Logger.LogDebug("Resource: {Resource}", resource);
|
||||||
|
}
|
||||||
|
|
||||||
if (config?.UseSwagger == true)
|
if (config?.UseSwagger == true)
|
||||||
{
|
{
|
||||||
app.UseSwagger();
|
app.UseSwagger();
|
||||||
app.UseSwaggerUI();
|
app.UseSwaggerUI(CustomStyle.CustomModern);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config?.LogRequests == true)
|
if (config?.LogRequests == true)
|
||||||
|
@ -108,4 +124,12 @@ if (config?.DatabaseType == DatabaseTypes.Memory)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (app.Environment.IsDevelopment())
|
||||||
|
// {
|
||||||
|
// app.Logger.LogInformation(
|
||||||
|
// "Development mode detected, printing configuration: {Configuration}",
|
||||||
|
// config?.ToJson()
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
app.Run();
|
app.Run();
|
||||||
|
|
12
Util/SwaggerTheme/CustomStyle.cs
Normal file
12
Util/SwaggerTheme/CustomStyle.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
using AspNetCore.Swagger.Themes;
|
||||||
|
|
||||||
|
namespace ZenithInfo.Util.SwaggerTheme;
|
||||||
|
|
||||||
|
public class CustomStyle : ModernStyle
|
||||||
|
{
|
||||||
|
protected CustomStyle(string fileName)
|
||||||
|
: base(fileName) { }
|
||||||
|
|
||||||
|
public static CustomStyle CustomModern => new("modern.custom.css");
|
||||||
|
}
|
117
Util/SwaggerTheme/modern.custom.css
Normal file
117
Util/SwaggerTheme/modern.custom.css
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
:root {
|
||||||
|
/* Light mode (Catppuccin Latte) */
|
||||||
|
--catppuccin-pink: #ea76cb;
|
||||||
|
--catppuccin-mauve: #8839ef;
|
||||||
|
--catppuccin-red: #d20f39;
|
||||||
|
--catppuccin-maroon: #e64553;
|
||||||
|
--catppuccin-peach: #fe640b;
|
||||||
|
--catppuccin-yellow: #df8e1d;
|
||||||
|
--catppuccin-green: #40a02b;
|
||||||
|
--catppuccin-teal: #179299;
|
||||||
|
--catppuccin-sky: #04a5e5;
|
||||||
|
--catppuccin-sapphire: #209fb5;
|
||||||
|
--catppuccin-blue: #1e66f5;
|
||||||
|
--catppuccin-lavender: #7287fd;
|
||||||
|
--catppuccin-text: #4c4f69;
|
||||||
|
--catppuccin-subtext1: #5c5f77;
|
||||||
|
--catppuccin-subtext0: #6c6f85;
|
||||||
|
--catppuccin-overlay2: #7c7f93;
|
||||||
|
--catppuccin-overlay1: #8c8fa1;
|
||||||
|
--catppuccin-overlay0: #9ca0b0;
|
||||||
|
--catppuccin-surface2: #acb0be;
|
||||||
|
--catppuccin-surface1: #bcc0cc;
|
||||||
|
--catppuccin-surface0: #ccd0da;
|
||||||
|
--catppuccin-base: #eff1f5;
|
||||||
|
--catppuccin-mantle: #e6e9ef;
|
||||||
|
--catppuccin-crust: #dce0e8;
|
||||||
|
|
||||||
|
--link: var(--catppuccin-blue);
|
||||||
|
--link-hover: var(--catppuccin-sapphire);
|
||||||
|
--accent: var(--catppuccin-green);
|
||||||
|
--error: var(--catppuccin-red);
|
||||||
|
|
||||||
|
/* Body */
|
||||||
|
--body-background-color: var(--catppuccin-base);
|
||||||
|
--swagger-main-color: var(--catppuccin-text);
|
||||||
|
--scrollbar-thumb-color: var(--catppuccin-surface1);
|
||||||
|
--scrollbar-thumb-hover-color: var(--catppuccin-surface0);
|
||||||
|
|
||||||
|
/* Loading */
|
||||||
|
--loading-container-border-color: var(--accent);
|
||||||
|
|
||||||
|
/* Errors Container */
|
||||||
|
--errors-wrapper-background-color: var(--catppuccin-surface0);
|
||||||
|
--errors-wrapper-border-color: var(--error);
|
||||||
|
--errors-wrapper-errors-color: var(--error);
|
||||||
|
|
||||||
|
/* Topbar */
|
||||||
|
--topbar-background-color: var(--catppuccin-surface0);
|
||||||
|
--topbar-pinned-background-color: var(--catppuccin-surface0);
|
||||||
|
--topbar-border-color: var(--accent);
|
||||||
|
--topbar-select-label-color: var(--catppuccin-text);
|
||||||
|
--topbar-select-border-color: var(--accent);
|
||||||
|
|
||||||
|
/* Infobox */
|
||||||
|
--swagger-info-link: var(--link);
|
||||||
|
--swagger-info-link-hover: var(--link-hover);
|
||||||
|
--api-version-background-color: var(--catppuccin-surface2);
|
||||||
|
--api-version-stamp-background-color: var(--accent);
|
||||||
|
--api-version-color: var(--catppuccin-base);
|
||||||
|
|
||||||
|
/* Authorization */
|
||||||
|
--btn-authorize-background-color: var(--catppuccin-surface0);
|
||||||
|
--btn-authorize-border-color: var(--catppuccin-green);
|
||||||
|
--btn-authorize-font-color: var(--catppuccin-green);
|
||||||
|
--btn-authorize-svg-fill-color: var(--catppuccin-green);
|
||||||
|
--auth-container-background-color: var(--catppuccin-surface0);
|
||||||
|
--auth-container-errors-color: var(--catppuccin-red);
|
||||||
|
--auth-wrapper-background-color: var(--catppuccin-mantle);
|
||||||
|
--auth-wrapper-border-color: var(--accent);
|
||||||
|
|
||||||
|
/* Form Elements */
|
||||||
|
--select-border-color: var(--accent);
|
||||||
|
--input-background-color: var(--catppuccin-surface0);
|
||||||
|
--input-border-color: var(--accent);
|
||||||
|
--input-invalid-border-color: var(--error);
|
||||||
|
--input-disabled-background-color: var(--catppuccin-crust);
|
||||||
|
--input-disabled-border-color: var(--catppuccin-surface1);
|
||||||
|
|
||||||
|
/* Dialog */
|
||||||
|
--dialog-background-color: var(--catppuccin-mantle);
|
||||||
|
--dialog-border-color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.swagger-ui .topbar .download-url-wrapper input[type="text"], .swagger-ui .topbar .download-url-wrapper .select-label select {
|
||||||
|
background-color: var(--catppuccin-surface0);
|
||||||
|
color: var(--catppuccin-text);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
/* Dark mode (Catppuccin Mocha) */
|
||||||
|
--catppuccin-pink: #f5c2e7;
|
||||||
|
--catppuccin-mauve: #cba6f7;
|
||||||
|
--catppuccin-red: #f38ba8;
|
||||||
|
--catppuccin-maroon: #eba0ac;
|
||||||
|
--catppuccin-peach: #fab387;
|
||||||
|
--catppuccin-yellow: #f9e2af;
|
||||||
|
--catppuccin-green: #a6e3a1;
|
||||||
|
--catppuccin-teal: #94e2d5;
|
||||||
|
--catppuccin-sky: #89dceb;
|
||||||
|
--catppuccin-sapphire: #74c7ec;
|
||||||
|
--catppuccin-blue: #89b4fa;
|
||||||
|
--catppuccin-lavender: #b4befe;
|
||||||
|
--catppuccin-text: #cdd6f4;
|
||||||
|
--catppuccin-subtext1: #bac2de;
|
||||||
|
--catppuccin-subtext0: #a6adc8;
|
||||||
|
--catppuccin-overlay2: #9399b2;
|
||||||
|
--catppuccin-overlay1: #7f849c;
|
||||||
|
--catppuccin-overlay0: #6c7086;
|
||||||
|
--catppuccin-surface2: #585b70;
|
||||||
|
--catppuccin-surface1: #45475a;
|
||||||
|
--catppuccin-surface0: #313244;
|
||||||
|
--catppuccin-base: #1e1e2e;
|
||||||
|
--catppuccin-mantle: #181825;
|
||||||
|
--catppuccin-crust: #11111b;
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,6 +10,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="AspNetCore.SwaggerUI.Themes" Version="2.0.0" />
|
||||||
<PackageReference Include="Sentry.AspNetCore" Version="5.0.0" />
|
<PackageReference Include="Sentry.AspNetCore" Version="5.0.0" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.2.0" />
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.2.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -33,4 +34,8 @@
|
||||||
<Folder Include="Migrations\" />
|
<Folder Include="Migrations\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Util\SwaggerTheme\modern.custom.css" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
Loading…
Add table
Reference in a new issue