Skip to content

Commit 1cedd98

Browse files
committed
Rework launcher<->gateway handshake interaction.
URI to news list JSON file is now provided in the handshake.
1 parent b1e314c commit 1cedd98

19 files changed

+29
-292
lines changed

Directory.Packages.props

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@
4141
Version="1.21.0" />
4242
<PackageVersion Include="Injectio"
4343
Version="3.1.0" />
44-
<PackageVersion Include="Markdig"
45-
Version="0.34.0" />
4644
<PackageVersion Include="Marten.AspNetCore"
4745
Version="6.4.1" />
4846
<PackageVersion Include="Marten.NodaTime"
@@ -111,7 +109,5 @@
111109
Version="2.1.7" />
112110
<PackageVersion Include="Vezel.Ruptura.Memory"
113111
Version="2.1.7" />
114-
<PackageVersion Include="YamlDotNet"
115-
Version="13.7.1" />
116112
</ItemGroup>
117113
</Project>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using Arise.Server.Gateway.Net;
2+
3+
namespace Arise.Server.Gateway.Controllers;
4+
5+
[AllowAnonymous]
6+
[DisableRateLimiting]
7+
internal sealed class LauncherController : ApiController
8+
{
9+
[HttpGet]
10+
public IActionResult Hello(IOptions<GatewayOptions> options, GameDownloadLinks links)
11+
{
12+
return Ok(new LauncherHelloResponse
13+
{
14+
NewsUri = options.Value.NewsUri is { } uri ? new(uri) : null,
15+
TeraManifestUri = links.TeraManifestUri,
16+
TeraDownloadFormat = links.TeraDownloadUri,
17+
AriseManifestUri = links.AriseManifestUri,
18+
AriseDownloadFormat = links.AriseDownloadUri,
19+
});
20+
}
21+
}

src/server/gateway/Controllers/NewsController.cs

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/server/gateway/Controllers/VersionController.cs

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/shared/gateway/Cryptography/Pbkdf2PasswordStrategy.cs renamed to src/server/gateway/Cryptography/Pbkdf2PasswordStrategy.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace Arise.Cryptography;
1+
namespace Arise.Server.Gateway.Cryptography;
22

33
public sealed class Pbkdf2PasswordStrategy : PasswordStrategy
44
{

src/server/gateway/GatewayOptions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ internal sealed class GatewayOptions : IOptions<GatewayOptions>
3232

3333
public Duration AccountSessionKeyTime { get; set; } = Duration.FromHours(12);
3434

35-
public int NewsPageSize { get; set; } = 10;
35+
public string? NewsUri { get; set; }
3636

3737
GatewayOptions IOptions<GatewayOptions>.Value => this;
3838

src/server/gateway/GatewayServiceCollectionExtensions.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using Arise.Server.Gateway.Controllers;
33
using Arise.Server.Gateway.Email;
44
using Arise.Server.Gateway.ModelBinding;
5-
using Arise.Server.Gateway.News;
65
using Arise.Server.Gateway.RateLimiting;
76

87
namespace Arise.Server.Gateway;
@@ -59,7 +58,6 @@ public static IServiceCollection AddGatewayServices(this IServiceCollection serv
5958
opts.LowercaseQueryStrings = true;
6059
})
6160
.AddAriseServerGateway()
62-
.AddHostedService(static provider => provider.GetRequiredService<NewsArticleProvider>())
6361
.AddHostedService(static provider => provider.GetRequiredService<EmailSender>());
6462
}
6563
}

src/server/gateway/News/NewsArticle.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/server/gateway/News/NewsArticleProvider.cs

Lines changed: 0 additions & 107 deletions
This file was deleted.

src/server/gateway/gateway.csproj

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@
1313
<Using Include="Arise.Server.Storage.Documents" />
1414
<Using Include="EmailValidation" />
1515
<Using Include="Injectio.Attributes" />
16-
<Using Include="Markdig" />
17-
<Using Include="Markdig.Extensions.AutoIdentifiers" />
18-
<Using Include="Markdig.Extensions.Yaml" />
19-
<Using Include="Markdig.Syntax" />
2016
<Using Include="Marten" />
2117
<Using Include="Marten.Exceptions" />
2218
<Using Include="Microsoft.AspNetCore.Authentication" />
@@ -43,7 +39,6 @@
4339
<Using Include="SendGrid.Helpers.Errors.Model" />
4440
<Using Include="SendGrid.Helpers.Mail" />
4541
<Using Include="System.Threading.RateLimiting" />
46-
<Using Include="YamlDotNet.RepresentationModel" />
4742
</ItemGroup>
4843

4944
<ItemGroup>
@@ -54,33 +49,11 @@
5449
<ItemGroup>
5550
<PackageReference Include="Injectio"
5651
PrivateAssets="all" />
57-
<PackageReference Include="Markdig" />
5852
<PackageReference Include="Marten.AspNetCore" />
5953
<PackageReference Include="SendGrid" />
60-
<PackageReference Include="YamlDotNet" />
6154
</ItemGroup>
6255

6356
<ItemGroup>
6457
<FrameworkReference Include="Microsoft.AspNetCore.App" />
6558
</ItemGroup>
66-
67-
<Target Name="_AddNewsArticles"
68-
BeforeTargets="AssignTargetPaths">
69-
<MSBuild Projects="$(AriseVendorProjectPath)"
70-
Targets="GetNewsArticlesPath">
71-
<Output TaskParameter="TargetOutputs"
72-
ItemName="AriseNewsArticlesPath" />
73-
</MSBuild>
74-
75-
<PropertyGroup>
76-
<_NewsArticlesPath>@(AriseNewsArticlesPath)</_NewsArticlesPath>
77-
</PropertyGroup>
78-
79-
<ItemGroup>
80-
<_NewsArticle Include="$(_NewsArticlesPath)/**" />
81-
<Content Include="@(_NewsArticle)"
82-
Link="articles/%(RecursiveDir)%(Filename)%(Extension)"
83-
CopyToOutputDirectory="PreserveNewest" />
84-
</ItemGroup>
85-
</Target>
8659
</Project>

src/shared/gateway/Gateway/GatewayJsonSerializerContext.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ namespace Arise.Gateway;
66
[JsonSerializable(typeof(AccountsRecoverRequest))]
77
[JsonSerializable(typeof(AccountsUpdateRequest))]
88
[JsonSerializable(typeof(AccountsVerifyRequest))]
9-
[JsonSerializable(typeof(NewsListResponse))]
10-
[JsonSerializable(typeof(VersionCheckResponse))]
9+
[JsonSerializable(typeof(LauncherHelloResponse))]
1110
[JsonSourceGenerationOptions(WriteIndented = true)]
1211
internal sealed partial class GatewayJsonSerializerContext : JsonSerializerContext
1312
{

src/shared/gateway/Gateway/IGatewayClient.cs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ public abstract Task<IApiResponse> UpdateAccountAsync(
3030
[Patch("/Accounts/Recover")]
3131
public abstract Task<IApiResponse> RecoverAccountAsync([Body] AccountsRecoverRequest body);
3232

33-
[Delete("/Accounts/Delete")]
34-
public abstract Task<IApiResponse> RecoverAccountAsync(
35-
[Header(EmailHeader)] string email, [Header(PasswordHeader)] string password);
36-
3733
[Patch("/Accounts/Delete")]
3834
public abstract Task<IApiResponse> DeleteAccountAsync(
3935
[Header(EmailHeader)] string email, [Header(PasswordHeader)] string password);
@@ -46,12 +42,6 @@ public abstract Task<IApiResponse> RestoreAccountAsync(
4642
public abstract Task<IApiResponse<AccountsAuthenticateResponse>> AuthenticateAccountAsync(
4743
[Header(EmailHeader)] string email, [Header(PasswordHeader)] string password);
4844

49-
[Get("/News/List")]
50-
public abstract Task<IApiResponse<NewsListResponse>> ListNewsAsync([Body] NewsListRequest body);
51-
52-
[Get("/News/Get")]
53-
public abstract Task<IApiResponse<NewsGetResponse>> GetNewsAsync([Body] NewsGetRequest body);
54-
55-
[Get("/Version/Check")]
56-
public abstract Task<IApiResponse<VersionCheckResponse>> CheckVersionAsync();
45+
[Get("/Launcher/Hello")]
46+
public abstract Task<IApiResponse<LauncherHelloResponse>> LauncherHelloAsync();
5747
}

src/shared/gateway/Gateway/VersionCheckResponse.cs renamed to src/shared/gateway/Gateway/LauncherHelloResponse.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
namespace Arise.Gateway;
22

3-
public sealed class VersionCheckResponse
3+
public sealed class LauncherHelloResponse
44
{
5+
public required Uri? NewsUri { get; init; }
6+
57
public required Uri TeraManifestUri { get; init; }
68

79
public required Uri TeraDownloadFormat { get; init; }

src/shared/gateway/Gateway/NewsGetRequest.cs

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/shared/gateway/Gateway/NewsGetResponse.cs

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/shared/gateway/Gateway/NewsListRequest.cs

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)