Exemple #1
0
        public override async Task <ResolveApprovalRequestsResponse> ResolveApprovalRequests(ResolveApprovalRequestsRequest request, ServerCallContext context)
        {
            var validatorId = context.GetHttpContext().User.GetClaimOrDefault(Claims.KeyKeeperId);
            var tenantId    = context.GetHttpContext().User.GetTenantIdOrDefault();
            var apiKeyId    = context.GetHttpContext().User.GetClaimOrDefault(Claims.ApiKeyId);

            var validatorLinkEntity = _validatorLinkReader.Get(
                ValidatorLinkEntity.GeneratePartitionKey(tenantId),
                ValidatorLinkEntity.GenerateRowKey(apiKeyId));

            if (validatorLinkEntity == null)
            {
                return(new ResolveApprovalRequestsResponse
                {
                    Error = new ValidatorApiError
                    {
                        Code = ValidatorApiError.Types.ErrorCodes.ExpiredApiKey,
                        Message = "API key is expired or deleted",
                        Data = apiKeyId
                    }
                });
            }

            Console.WriteLine($"===============================");
            Console.WriteLine("Receive ResolveApprovalRequests:");
            Console.WriteLine($"{DateTime.UtcNow:s}");
            Console.WriteLine($"validatorId: {validatorId}");
            Console.WriteLine($"DeviceInfo: {request.DeviceInfo}");
            Console.WriteLine($"TransferSigningRequestId: {request.TransferSigningRequestId}");
            Console.WriteLine($"Signature: {request.Signature}");
            Console.WriteLine($"ResolutionDocumentEncBase64: {request.ResolutionDocumentEncBase64}");
            Console.WriteLine($"-------------------------------");


            var approvalRequest = _approvalRequestReader.Get(
                ApprovalRequestMyNoSqlEntity.GeneratePartitionKey(validatorId),
                ApprovalRequestMyNoSqlEntity.GenerateRowKey(request.TransferSigningRequestId));

            if (approvalRequest == null || !approvalRequest.IsOpen)
            {
                _logger.LogInformation("ResolveApprovalRequests skip because active request not found. TransferSigningRequestId={TransferSigningRequestId}; ValidatorId={ValidatorId}", request.TransferSigningRequestId, validatorId);
                return(new ResolveApprovalRequestsResponse());
            }

            approvalRequest.ResolutionDocumentEncBase64 = request.ResolutionDocumentEncBase64;
            approvalRequest.ResolutionSignature         = request.Signature;
            approvalRequest.IsOpen = false;

            await _approvalRequestWriter.InsertOrReplaceAsync(approvalRequest);

            _logger.LogInformation("ResolveApprovalRequests processed. TransferSigningRequestId={TransferSigningRequestId}; ValidatorId={ValidatorId}", request.TransferSigningRequestId, validatorId);

            return(new ResolveApprovalRequestsResponse());
        }
Exemple #2
0
        public override async Task <AcknowledgeResultResponse> AcknowledgeResult(AcknowledgeResultRequest request, ServerCallContext context)
        {
            var vaultId = context.GetVaultId();

            var item = _dataReader.Get(ApprovalRequestMyNoSqlEntity.GeneratePartitionKey(request.ValidatorId),
                                       ApprovalRequestMyNoSqlEntity.GenerateRowKey(request.TransferSigningRequestId));

            if (item != null && item.VaultId == vaultId)
            {
                await _dataWriter.DeleteAsync(ApprovalRequestMyNoSqlEntity.GeneratePartitionKey(request.ValidatorId),
                                              ApprovalRequestMyNoSqlEntity.GenerateRowKey(request.TransferSigningRequestId));

                _logger.LogInformation("Acknowledge ApprovalResults. TransferSigningRequestId={TransferSigningRequestId}; TenantId={TenantId}; VaultId={VaultId}; ValidatorId={ValidatorId}", item.TransferSigningRequestId, item.TenantId, item.VaultId, item.ValidatorId);
            }

            return(new AcknowledgeResultResponse());
        }