u
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Blazored.LocalStorage;
|
||||
using Blazored.LocalStorage;
|
||||
using FrontOffice.BFF.User.Protobuf.Protos.User;
|
||||
using FrontOffice.BFF.User.Protobuf.Validator;
|
||||
using FrontOffice.Main.Utilities;
|
||||
@@ -17,10 +16,10 @@ public partial class Phone : IDisposable
|
||||
private const string TokenStorageKey = "auth:token";
|
||||
private const string OtpPurpose = "Login";
|
||||
|
||||
private static readonly CreateNewOtpTokenRequestValidator RequestValidator = new();
|
||||
|
||||
private readonly PhoneInputModel _model = new();
|
||||
private CreateNewOtpTokenRequestValidator _requestValidator = new();
|
||||
private CreateNewOtpTokenRequest _request = new();
|
||||
private MudForm? _form;
|
||||
|
||||
private bool _isBusy;
|
||||
private string? _errorMessage;
|
||||
private string? _redirect;
|
||||
@@ -31,6 +30,7 @@ public partial class Phone : IDisposable
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_request.Purpose = OtpPurpose;
|
||||
var uri = Navigation.ToAbsoluteUri(Navigation.Uri);
|
||||
var query = QueryHelpers.ParseQuery(uri.Query);
|
||||
if (query.TryGetValue("redirect", out var redirectValues))
|
||||
@@ -41,7 +41,7 @@ public partial class Phone : IDisposable
|
||||
var storedPhone = await LocalStorage.GetItemAsync<string>(PhoneStorageKey);
|
||||
if (!string.IsNullOrWhiteSpace(storedPhone))
|
||||
{
|
||||
_model.PhoneNumber = storedPhone;
|
||||
_request.Mobile = storedPhone;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(_redirect))
|
||||
@@ -58,15 +58,11 @@ public partial class Phone : IDisposable
|
||||
{
|
||||
_errorMessage = null;
|
||||
if (_form is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
await _form.Validate();
|
||||
if (!_form.IsValid)
|
||||
{
|
||||
return;
|
||||
}
|
||||
return;
|
||||
|
||||
_isBusy = true;
|
||||
_sendCts?.Cancel();
|
||||
@@ -75,13 +71,7 @@ public partial class Phone : IDisposable
|
||||
|
||||
try
|
||||
{
|
||||
var request = new CreateNewOtpTokenRequest
|
||||
{
|
||||
Mobile = _model.PhoneNumber,
|
||||
Purpose = OtpPurpose
|
||||
};
|
||||
|
||||
var validationResult = RequestValidator.Validate(request);
|
||||
var validationResult = _requestValidator.Validate(_request);
|
||||
if (!validationResult.IsValid)
|
||||
{
|
||||
_errorMessage = string.Join(" ", validationResult.Errors.Select(e => e.ErrorMessage).Distinct());
|
||||
@@ -92,11 +82,11 @@ public partial class Phone : IDisposable
|
||||
CreateNewOtpTokenResponse response;
|
||||
if (metadata is not null)
|
||||
{
|
||||
response = await UserClient.CreateNewOtpTokenAsync(request, metadata, cancellationToken: _sendCts.Token);
|
||||
response = await UserClient.CreateNewOtpTokenAsync(_request, metadata, cancellationToken: _sendCts.Token);
|
||||
}
|
||||
else
|
||||
{
|
||||
response = await UserClient.CreateNewOtpTokenAsync(request, cancellationToken: _sendCts.Token);
|
||||
response = await UserClient.CreateNewOtpTokenAsync(_request, cancellationToken: _sendCts.Token);
|
||||
}
|
||||
|
||||
if (response?.Success != true)
|
||||
@@ -107,7 +97,7 @@ public partial class Phone : IDisposable
|
||||
return;
|
||||
}
|
||||
|
||||
await LocalStorage.SetItemAsync(PhoneStorageKey, _model.PhoneNumber);
|
||||
await LocalStorage.SetItemAsync(PhoneStorageKey, _request.Mobile);
|
||||
if (!string.IsNullOrWhiteSpace(_redirect))
|
||||
{
|
||||
await LocalStorage.SetItemAsync(RedirectStorageKey, _redirect);
|
||||
@@ -117,7 +107,7 @@ public partial class Phone : IDisposable
|
||||
await LocalStorage.RemoveItemAsync(RedirectStorageKey);
|
||||
}
|
||||
|
||||
var target = $"{RouteConstants.Auth.Verify}?phone={Uri.EscapeDataString(_model.PhoneNumber)}";
|
||||
var target = $"{RouteConstants.Auth.Verify}?phone={Uri.EscapeDataString(_request.Mobile)}";
|
||||
if (!string.IsNullOrEmpty(_redirect))
|
||||
{
|
||||
target += "&redirect=" + Uri.EscapeDataString(_redirect);
|
||||
@@ -167,14 +157,4 @@ public partial class Phone : IDisposable
|
||||
_sendCts?.Dispose();
|
||||
_sendCts = null;
|
||||
}
|
||||
|
||||
private sealed class PhoneInputModel
|
||||
{
|
||||
[Required(ErrorMessage = "???? ???? ????? ?????? ?????? ???.")]
|
||||
[RegularExpression(@"^09\\d{9}$", ErrorMessage = "????? ?????? ????? ????.")]
|
||||
public string PhoneNumber { get; set; } = string.Empty;
|
||||
|
||||
[Range(typeof(bool), "true", "true", ErrorMessage = "????? ????? ? ?????? ????? ???.")]
|
||||
public bool AcceptTerms { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user