@@ -14,7 +14,7 @@ import retry_policy_service
14
14
public struct ReplicateAPI {
15
15
16
16
/// Client type alias
17
- public typealias ReplicateClient = Http . Proxy < ReplicateAPI . JsonReader , JsonWriter >
17
+ public typealias ReplicateClient = Http . Proxy < JsonReader , JsonWriter >
18
18
19
19
/// Communication layer
20
20
private let client : ReplicateClient
@@ -75,10 +75,13 @@ public struct ReplicateAPI{
75
75
public func getCollections( collection_slug : String ) async throws -> CollectionOfModels {
76
76
77
77
let path = " collections/ \( collection_slug) "
78
- let rule = [ Http . Validate. status ( . range( 200 ..< 500 ) ) ]
79
- let result : Http . Response < CollectionOfModels > = try await client. get ( path: path, validate: rule)
80
-
81
- return result. value
78
+ let rule = [ Http . Validate. status ( . range( 200 ..< 299 ) ) ]
79
+ do {
80
+ let result : Http . Response < CollectionOfModels > = try await client. get ( path: path, validate: rule)
81
+ return result. value
82
+ } catch {
83
+ throw ResponseError . check ( error)
84
+ }
82
85
}
83
86
84
87
/// Get a model
@@ -88,10 +91,14 @@ public struct ReplicateAPI{
88
91
public func getModel( owner: String , name: String ) async throws -> Model {
89
92
90
93
let path = " models/ \( owner) / \( name) "
91
- let rule = [ Http . Validate. status ( . range( 200 ..< 500 ) ) ]
92
- let result : Http . Response < Model > = try await client. get ( path: path, validate: rule)
94
+ let rule = [ Http . Validate. status ( . range( 200 ..< 299 ) ) ]
95
+ do {
96
+ let result : Http . Response < Model > = try await client. get ( path: path, validate: rule)
97
+ return result. value
98
+ } catch {
99
+ throw ResponseError . check ( error)
100
+ }
93
101
94
- return result. value
95
102
}
96
103
97
104
/// Create prediction
@@ -141,13 +148,18 @@ public struct ReplicateAPI{
141
148
by id : String
142
149
) async throws -> Prediction < Output > {
143
150
144
- let rule = [ Http . Validate. status ( . range( 200 ..< 500 ) ) ]
145
- let result : Http . Response < Prediction < Output > > = try await client. get (
146
- path: " predictions/ \( id) " ,
147
- validate: rule
148
- )
149
-
150
- return result. value
151
+ let rule = [ Http . Validate. status ( . range( 200 ..< 299 ) ) ]
152
+
153
+ do {
154
+ let result : Http . Response < Prediction < Output > > = try await client. get (
155
+ path: " predictions/ \( id) " ,
156
+ validate: rule
157
+ )
158
+
159
+ return result. value
160
+ } catch {
161
+ throw ResponseError . check ( error)
162
+ }
151
163
}
152
164
153
165
// MARK: - Private
@@ -196,21 +208,26 @@ public struct ReplicateAPI{
196
208
with body : HttpBody < Input >
197
209
) async throws -> Prediction < Output > {
198
210
199
- let rule = [ Http . Validate. status ( . range( 200 ..< 500 ) ) ]
200
- let result : Http . Response < Prediction < Output > > = try await client. post (
201
- path: " predictions " ,
202
- body : body,
203
- validate: rule
204
- )
211
+ let rule = [ Http . Validate. status ( . range( 200 ..< 299 ) ) ]
205
212
206
- return result. value
213
+ do {
214
+ let result : Http . Response < Prediction < Output > > = try await client. post (
215
+ path: " predictions " ,
216
+ body : body,
217
+ validate: rule
218
+ )
219
+
220
+ return result. value
221
+ } catch {
222
+ throw ResponseError . check ( error)
223
+ }
207
224
}
208
225
}
209
226
210
227
// MARK: - File private -
211
228
212
229
/// Client configuration type alias
213
- fileprivate typealias ClientConfig = Http . Configuration < ReplicateAPI . JsonReader , JsonWriter >
230
+ fileprivate typealias ClientConfig = Http . Configuration < JsonReader , JsonWriter >
214
231
215
232
/// Client configuration
216
233
/// - Parameter endpoint: Replicate endpoint
@@ -220,7 +237,7 @@ fileprivate func clientCfg(baseURL: URL, apiKey: String)
220
237
let session = URLSession ( configuration: sessionCfg ( apiKey) )
221
238
222
239
return . init(
223
- reader: ReplicateAPI . JsonReader ( ) ,
240
+ reader: JsonReader ( ) ,
224
241
writer: JsonWriter ( ) ,
225
242
baseURL: baseURL,
226
243
session: session)
0 commit comments