1
1
package de .innfactory .smithy4play .client
2
2
3
3
import cats .data .Kleisli
4
- import de .innfactory .smithy4play .{ ClientResponse , RunnableClientRequest }
4
+ import com .github .plokhotnyuk .jsoniter_scala .core .ReaderConfig
5
+ import de .innfactory .smithy4play .{ ClientResponse , CodecDecider , RunnableClientRequest }
5
6
import smithy4s .Service
6
7
import smithy4s .kinds .{ Kind1 , PolyFunction5 }
7
8
@@ -10,10 +11,12 @@ import scala.concurrent.ExecutionContext
10
11
private class GenericAPIClient [Alg [_[_, _, _, _, _]]](
11
12
service : Service [Alg ],
12
13
client : RequestClient ,
14
+ readerConfig : ReaderConfig ,
13
15
additionalSuccessCodes : List [Int ] = List .empty
14
16
)(implicit ec : ExecutionContext ) {
15
17
16
- private val smithyPlayClient = new SmithyPlayClient (" /" , service, client, additionalSuccessCodes)
18
+ private val smithyPlayClient =
19
+ new SmithyPlayClient (" /" , service, client, CodecDecider (readerConfig), additionalSuccessCodes)
17
20
18
21
/* Takes a service and creates a Transformation[Op, ClientRequest] */
19
22
private def transformer (): Alg [Kind1 [RunnableClientRequest ]# toKind5] =
@@ -53,31 +56,35 @@ object GenericAPIClient {
53
56
def withClientAndHeaders (
54
57
client : RequestClient ,
55
58
additionalHeaders : Option [Map [String , Seq [String ]]],
56
- additionalSuccessCodes : List [Int ] = List .empty
59
+ additionalSuccessCodes : List [Int ] = List .empty,
60
+ readerConfig : ReaderConfig = ReaderConfig
57
61
)(implicit ec : ExecutionContext ): Alg [Kind1 [ClientResponse ]# toKind5] =
58
- apply(service, additionalHeaders, additionalSuccessCodes, client)
62
+ apply(service, additionalHeaders, additionalSuccessCodes, client, readerConfig )
59
63
60
64
def withClient (
61
65
client : RequestClient ,
62
- additionalSuccessCodes : List [Int ] = List .empty
66
+ additionalSuccessCodes : List [Int ] = List .empty,
67
+ readerConfig : ReaderConfig = ReaderConfig
63
68
)(implicit ec : ExecutionContext ): Alg [Kind1 [RunnableClientRequest ]# toKind5] =
64
- apply(service, client, additionalSuccessCodes)
69
+ apply(service, client, additionalSuccessCodes, readerConfig )
65
70
66
71
}
67
72
68
73
def apply [Alg [_[_, _, _, _, _]]](
69
74
serviceI : Service [Alg ],
70
75
client : RequestClient ,
71
- additionalSuccessCodes : List [Int ]
76
+ additionalSuccessCodes : List [Int ],
77
+ readerConfig : ReaderConfig
72
78
)(implicit ec : ExecutionContext ): Alg [Kind1 [RunnableClientRequest ]# toKind5] =
73
- new GenericAPIClient (serviceI, client, additionalSuccessCodes).transformer()
79
+ new GenericAPIClient (serviceI, client, readerConfig, additionalSuccessCodes).transformer()
74
80
75
81
def apply [Alg [_[_, _, _, _, _]]](
76
82
serviceI : Service [Alg ],
77
83
additionalHeaders : Option [Map [String , Seq [String ]]],
78
84
additionalSuccessCodes : List [Int ],
79
- client : RequestClient
85
+ client : RequestClient ,
86
+ readerConfig : ReaderConfig
80
87
)(implicit ec : ExecutionContext ): Alg [Kind1 [ClientResponse ]# toKind5] =
81
- new GenericAPIClient (serviceI, client, additionalSuccessCodes).transformer(additionalHeaders)
88
+ new GenericAPIClient (serviceI, client, readerConfig, additionalSuccessCodes).transformer(additionalHeaders)
82
89
83
90
}
0 commit comments