feat: implemented registration stage of preparation on PrepareUserState

implemented auth, added auth tools AcceptNotPreparedAttribute.cs, IAuthorizedTelegramCommand.cs
This commit is contained in:
2025-07-12 01:52:16 +03:00
parent 67a3457f2d
commit a526dbf6c6
11 changed files with 80 additions and 12 deletions

View File

@@ -13,10 +13,8 @@ public class PrepareUserState(PrepareUserService prepareUserService, MenuService
/// <param name="ct">Cancellation token</param>
public async Task TryToPrepareUser(Update update, CancellationToken ct = default)
{
var user = await prepareUserService.GetUser(update, ct);
if (user == null)
user = await prepareUserService.RegisterUser(update, ct);
var user = await prepareUserService.GetUser(update, ct) ?? await prepareUserService.RegisterUser(update, ct);
if (!user.Eula)
{
await prepareUserService.AskForEulaAgreement(update, ct);
@@ -31,12 +29,17 @@ public class PrepareUserState(PrepareUserService prepareUserService, MenuService
/// </summary>
/// <param name="update"></param>
/// <param name="ct"></param>
public async Task UserAcceptedEula(Update update, CancellationToken ct = default)
public async Task AcceptEula(Update update, CancellationToken ct = default)
{
await prepareUserService.AcceptEula(update, ct: ct);
await OnUserEulaValidStage(update, ct);
}
/// <summary>
/// Continue prepare stage
/// </summary>
/// <param name="update"></param>
/// <param name="ct"></param>
private async Task OnUserEulaValidStage(Update update, CancellationToken ct = default)
{
await menuService.RenderMenu(update, ct); //boilerplate