public async Task <ResponseCheckTx> CheckTx(TransactionToken transactionToken, object data, RequestCheckTx request, ServerCallContext context) { if (!(data is RequestTransfer payload)) { return(ResponseHelper.Check.NoPayload()); } if (!IsVerifiedCaller(transactionToken, payload.NewOwner)) { return(ResponseHelper.Check.Unauthorized()); } _logger.LogInformation("Received valid CheckTx request"); var callNumber = await _callNumberRepository.Get(payload.PhoneNumber); if (callNumber == null) { return(ResponseHelper.Check.Create(CodeType.UnknownCallNumber, "Unknown call number.")); } if (callNumber.TransferRequestStarted.HasValue) { return(ResponseHelper.Check.Create(CodeType.TransferAlreadyStarted, "Transfer has already been started.")); } _logger.LogInformation("CheckTx Result: ok"); return(ResponseHelper.Check.Ok()); }
public async Task <ResponseCheckTx> CheckTx(TransactionToken transactionToken, object data, RequestCheckTx request, ServerCallContext context) { if (!(data is DenyTransferRequest payload)) { return(ResponseHelper.Check.NoPayload()); } var callNumber = await _callNumberRepository.Get(payload.PhoneNumber); if (callNumber == null) { return(ResponseHelper.Check.Create(CodeType.UnknownCallNumber, "Unknown call number.")); } if (!IsVerifiedCaller(transactionToken, callNumber.Owner)) { return(ResponseHelper.Check.Unauthorized()); } if (callNumber.TransferRequestedTo != payload.NewOwner) { return(ResponseHelper.Check.Create(CodeType.UnknownNewOwner, "Unknown new owner.")); } if (!callNumber.TransferRequestStarted.HasValue) { return(ResponseHelper.Check.Create(CodeType.NoTransferInitiated, "Transfer was not initiated.")); } return(ResponseHelper.Check.Ok()); }
public async Task <ResponseCheckTx> CheckTx(TransactionToken transactionToken, CreateNumber payload, RequestCheckTx request, ServerCallContext context) { if (!IsVerifiedCaller(transactionToken)) { return(ResponseHelper.Check.Unauthorized()); } _logger.LogInformation("Received valid CheckTx request"); var result = await _callNumberRepository.Get(payload.PhoneNumber); _logger.LogInformation($"CheckTx Result: {result == null}"); return(ResponseHelper.Check.Create(result == null ? CodeType.Ok : CodeType.PhoneNumberAlreadyExists, result == null ? "" : "Phonenumber already exists.")); }