@@ -16,6 +16,7 @@ import scalapb.{GeneratedMessage as Message, GeneratedMessageCompanion as Compan
16
16
17
17
import java .net .URLDecoder
18
18
import java .util .Base64
19
+ import scala .util .chaining .*
19
20
20
21
object MessageCodec {
21
22
given [F [_] : Applicative , A <: Message ](using codec : MessageCodec [F ], cmp : Companion [A ]): EntityDecoder [F , A ] =
@@ -93,22 +94,22 @@ class ProtoMessageCodec[F[_] : Async](compressor: Compressor[F]) extends Message
93
94
override def decode [A <: Message ](entity : RequestEntity [F ])(using cmp : Companion [A ]): DecodeResult [F , A ] = {
94
95
val msg = entity.message match {
95
96
case str : String =>
96
- Async [F ].delay(base64dec.decode(str.getBytes(entity.charset.nioCharset)))
97
- .flatMap(arr => Async [F ].delay(cmp.parseFrom(arr)))
97
+ Async [F ].delay(cmp.parseFrom(base64dec.decode(str.getBytes(entity.charset.nioCharset))))
98
98
case stream : Stream [F , Byte ] =>
99
99
toInputStreamResource(compressor.decompressed(entity.encoding, stream))
100
100
.use(is => Async [F ].delay(cmp.parseFrom(is)))
101
101
}
102
102
103
103
msg
104
- .map { message =>
105
- if (logger.isTraceEnabled) {
106
- logger.trace(s " >>> Headers: ${entity.headers.redactSensitive()}" )
107
- logger.trace(s " >>> Proto: ${message.toProtoString}" )
108
- }
109
-
110
- message
111
- }
104
+ .pipe(
105
+ if logger.isTraceEnabled then
106
+ _.map { msg =>
107
+ logger.trace(s " >>> Headers: ${entity.headers.redactSensitive()}" )
108
+ logger.trace(s " >>> Proto: ${msg.toProtoString}" )
109
+ msg
110
+ }
111
+ else identity
112
+ )
112
113
.attemptT
113
114
.leftMap(e => InvalidMessageBodyFailure (e.getMessage, e.some))
114
115
}
@@ -129,7 +130,7 @@ class ProtoMessageCodec[F[_] : Async](compressor: Compressor[F]) extends Message
129
130
130
131
}
131
132
132
- class Compressor [F [_]: Sync ] {
133
+ class Compressor [F [_] : Sync ] {
133
134
134
135
given Compression [F ] = Compression .forSync[F ]
135
136
0 commit comments