public override async Task <EmptyResponse> SendVerificationSms(VerificationSmsRequest request, ServerCallContext context) { var result = new EmptyResponse(); var response = await _walletApiV1Client.SendVerificationSmsAsync(new PostPhoneModel { PhoneNumber = request.Phone, Token = request.Token }); if (response.Error != null) { result.Error = response.Error.ToApiError(); } return(result); }
public override async Task <EmptyResponse> SendVerificationSms(VerificationSmsRequest request, ServerCallContext context) { var token = await _registrationTokenService.GetByOriginalTokenAsync(request.Token); if (token == null || token.ExpirationDate <= DateTime.UtcNow || !token.EmailVerified) { context.Status = new Status(StatusCode.Unauthenticated, "Unauthorized"); return(new EmptyResponse() { Error = new ErrorV1() { Code = ErrorModelCode.NotAuthenticated.ToString(), Message = ErrorMessages.Unauthorized } }); } if (string.IsNullOrEmpty(request.Phone)) { return(new EmptyResponse() { Error = new ErrorV1() { Code = ErrorModelCode.InvalidInputField.ToString(), Message = ErrorMessages.InvalidFieldValue("Phone") } }); } var codeHash = await _smsVerification.SendVerificationSms(request.Phone); if (string.IsNullOrEmpty(codeHash)) { return(new EmptyResponse() { Error = new ErrorV1() { Code = ErrorModelCode.InvalidInputField.ToString(), Message = ErrorMessages.CannotDeliverySms } }); } token.LastCodeHash = codeHash; token.PhoneHash = request.Phone.ToSha256().ToBase64(); await _registrationTokenService.SaveAsync(token); return(new EmptyResponse()); }