@@ -9,13 +9,12 @@ import io.grpc.stub.MetadataUtils
9
9
import org .http4s .dsl .Http4sDsl
10
10
import org .http4s .{Header , MediaType , MessageFailure , Method , Response }
11
11
import org .ivovk .connect_rpc_scala .Mappings .*
12
- import org .ivovk .connect_rpc_scala .grpc .{MethodName , MethodRegistry }
12
+ import org .ivovk .connect_rpc_scala .grpc .{GrpcClientCalls , MethodName , MethodRegistry }
13
13
import org .ivovk .connect_rpc_scala .http .Headers .`X-Test-Case-Name`
14
14
import org .ivovk .connect_rpc_scala .http .codec .MessageCodec .given
15
15
import org .ivovk .connect_rpc_scala .http .codec .{MessageCodec , MessageCodecRegistry }
16
16
import org .ivovk .connect_rpc_scala .http .{MediaTypes , RequestEntity }
17
17
import org .slf4j .{Logger , LoggerFactory }
18
- import scalapb .grpc .ClientCalls
19
18
import scalapb .{GeneratedMessage , GeneratedMessageCompanion , TextFormat }
20
19
21
20
import java .util .concurrent .atomic .AtomicReference
@@ -103,32 +102,35 @@ class ConnectHandler[F[_] : Async](
103
102
logger.trace(s " >>> Method: ${method.descriptor.getFullMethodName}, Entity: $message" )
104
103
}
105
104
106
- Async [F ].fromFuture(Async [F ].delay {
107
- ClientCalls .asyncUnaryCall[GeneratedMessage , GeneratedMessage ](
105
+ val callOptions = CallOptions .DEFAULT
106
+ .pipe(
107
+ req.timeout match {
108
+ case Some (timeout) => _.withDeadlineAfter(timeout, MILLISECONDS )
109
+ case None => identity
110
+ }
111
+ )
112
+
113
+ GrpcClientCalls
114
+ .asyncUnaryCall2[F , GeneratedMessage , GeneratedMessage ](
108
115
ClientInterceptors .intercept(
109
116
channel,
110
117
MetadataUtils .newAttachHeadersInterceptor(req.headers.toMetadata),
111
118
MetadataUtils .newCaptureMetadataInterceptor(responseHeaderMetadata, responseTrailerMetadata),
112
119
),
113
120
method.descriptor,
114
- CallOptions .DEFAULT .pipe(
115
- req.timeout match {
116
- case Some (timeout) => _.withDeadlineAfter(timeout, MILLISECONDS )
117
- case None => identity
118
- }
119
- ),
121
+ callOptions,
120
122
message
121
123
)
122
- }) .map { response =>
123
- val headers = responseHeaderMetadata.get.toHeaders() ++
124
- responseTrailerMetadata.get.toHeaders(trailing = ! treatTrailersAsHeaders)
124
+ .map { response =>
125
+ val headers = responseHeaderMetadata.get.toHeaders() ++
126
+ responseTrailerMetadata.get.toHeaders(trailing = ! treatTrailersAsHeaders)
125
127
126
- if (logger.isTraceEnabled) {
127
- logger.trace(s " <<< Headers: ${headers.redactSensitive()}" )
128
- }
128
+ if (logger.isTraceEnabled) {
129
+ logger.trace(s " <<< Headers: ${headers.redactSensitive()}" )
130
+ }
129
131
130
- Response (Ok , headers = headers).withEntity(response)
131
- }
132
+ Response (Ok , headers = headers).withEntity(response)
133
+ }
132
134
}
133
135
.recover { case e =>
134
136
val grpcStatus = e match {
0 commit comments