WIP: implemented registration and EULA accept, WIP on auth issue
This commit is contained in:
44
JOBot.TClient/Statements/PrepareUserState.cs
Normal file
44
JOBot.TClient/Statements/PrepareUserState.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using JOBot.TClient.Services;
|
||||
using Telegram.Bot.Types;
|
||||
using User = JOBot.Proto.User;
|
||||
|
||||
namespace JOBot.TClient.Statements;
|
||||
|
||||
public class PrepareUserState(PrepareUserService prepareUserService, MenuService menuService)
|
||||
{
|
||||
/// <summary>
|
||||
/// Try to prepare user if is not registered
|
||||
/// </summary>
|
||||
/// <param name="update">Update telegram object</param>
|
||||
/// <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);
|
||||
|
||||
if (!user.Eula)
|
||||
{
|
||||
await prepareUserService.AskForEulaAgreement(update, ct);
|
||||
return; //interrupt while eula isn't accepted
|
||||
}
|
||||
|
||||
await OnUserEulaValidStage(update, ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Signal for accepted eula
|
||||
/// </summary>
|
||||
/// <param name="update"></param>
|
||||
/// <param name="ct"></param>
|
||||
public async Task UserAcceptedEula(Update update, CancellationToken ct = default)
|
||||
{
|
||||
await prepareUserService.AcceptEula(update, ct: ct);
|
||||
await OnUserEulaValidStage(update, ct);
|
||||
}
|
||||
|
||||
private async Task OnUserEulaValidStage(Update update, CancellationToken ct = default)
|
||||
{
|
||||
await menuService.RenderMenu(update, ct); //boilerplate
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user