Dev #11
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
UniVerse — backend (ASP.NET Core) для университетской платформы расписания, лекций, отзывов и геймификации.
|
UniVerse — backend (ASP.NET Core) для университетской платформы расписания, лекций, отзывов и геймификации.
|
||||||
|
|
||||||
|
[Документация API](backend/UniVerse.Api/openapi.json)
|
||||||
|
[Документация бекнда](docs/backend.md)
|
||||||
|
|
||||||
## Что внутри
|
## Что внутри
|
||||||
|
|
||||||
- Расписание/события и сущности: курсы, лекции, аудитории (locations)
|
- Расписание/события и сущности: курсы, лекции, аудитории (locations)
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ using UniVerse.Infrastructure.Notifications;
|
|||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
var useAspire = builder.Configuration.GetValue<bool>("Aspire:Enabled");
|
var useAspire = builder.Configuration.GetValue<bool>("Aspire:Enabled");
|
||||||
|
var isOpenApiGeneration = AppDomain.CurrentDomain.GetAssemblies()
|
||||||
|
.Any(assembly => assembly.GetName().Name == "GetDocument.Insider");
|
||||||
|
|
||||||
if (useAspire)
|
if (useAspire)
|
||||||
{
|
{
|
||||||
@@ -98,10 +100,13 @@ builder.Services.AddTransient<NotificationJob>();
|
|||||||
builder.Services.Configure<EmailNotificationOptions>(builder.Configuration.GetSection("Email:Smtp"));
|
builder.Services.Configure<EmailNotificationOptions>(builder.Configuration.GetSection("Email:Smtp"));
|
||||||
|
|
||||||
builder.Services.AddQuartz();
|
builder.Services.AddQuartz();
|
||||||
builder.Services.AddQuartzHostedService(options =>
|
if (!isOpenApiGeneration)
|
||||||
{
|
{
|
||||||
|
builder.Services.AddQuartzHostedService(options =>
|
||||||
|
{
|
||||||
options.WaitForJobsToComplete = true;
|
options.WaitForJobsToComplete = true;
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// --- HTTP Clients ---
|
// --- HTTP Clients ---
|
||||||
builder.Services.AddHttpClient<ILlmClient, LlmClient>(client =>
|
builder.Services.AddHttpClient<ILlmClient, LlmClient>(client =>
|
||||||
@@ -117,8 +122,11 @@ builder.Services.AddHttpClient<IModeusApiClient, ModeusApiClient>(client =>
|
|||||||
});
|
});
|
||||||
|
|
||||||
// --- Background Services ---
|
// --- Background Services ---
|
||||||
builder.Services.AddHostedService<LlmProcessingBackgroundService>();
|
if (!isOpenApiGeneration)
|
||||||
builder.Services.AddHostedService<AchievementCatalogHostedService>();
|
{
|
||||||
|
builder.Services.AddHostedService<LlmProcessingBackgroundService>();
|
||||||
|
builder.Services.AddHostedService<AchievementCatalogHostedService>();
|
||||||
|
}
|
||||||
|
|
||||||
// --- Controllers ---
|
// --- Controllers ---
|
||||||
builder.Services.AddControllers()
|
builder.Services.AddControllers()
|
||||||
|
|||||||
@@ -8,6 +8,9 @@
|
|||||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||||
<AllowMissingPrunePackageData>true</AllowMissingPrunePackageData>
|
<AllowMissingPrunePackageData>true</AllowMissingPrunePackageData>
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
|
<OpenApiGenerateDocumentsOnBuild>true</OpenApiGenerateDocumentsOnBuild>
|
||||||
|
<OpenApiDocumentsDirectory>$(BaseIntermediateOutputPath)openapi</OpenApiDocumentsDirectory>
|
||||||
|
<OpenApiGenerateDocumentsOptions>--file-name openapi</OpenApiGenerateDocumentsOptions>
|
||||||
<!-- Suppress warnings for public members without XML docs -->
|
<!-- Suppress warnings for public members without XML docs -->
|
||||||
<NoWarn>$(NoWarn);1591</NoWarn>
|
<NoWarn>$(NoWarn);1591</NoWarn>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
@@ -39,4 +42,14 @@
|
|||||||
</Content>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<Target
|
||||||
|
Name="CopyGeneratedOpenApiDocument"
|
||||||
|
AfterTargets="Build"
|
||||||
|
Condition="Exists('$(OpenApiDocumentsDirectory)/openapi.json')">
|
||||||
|
<Copy
|
||||||
|
SourceFiles="$(OpenApiDocumentsDirectory)/openapi.json"
|
||||||
|
DestinationFiles="$(MSBuildProjectDirectory)/openapi.json"
|
||||||
|
SkipUnchangedFiles="true" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user