Skip to content

Commit d22c925

Browse files
committed
move example value to new type, add support for OAS 3.2.0 example fields
1 parent 35e0fe6 commit d22c925

File tree

12 files changed

+552
-296
lines changed

12 files changed

+552
-296
lines changed

Sources/OpenAPIKit/Content/Content.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ extension OpenAPI {
192192
self.schema = schemaValue
193193
}
194194
self.examples = examples
195-
self.example = examples.flatMap(Self.firstExample(from:))
195+
self.example = examples.flatMap(Self.firstExampleValue(from:))
196196
self.encoding = encoding.map(Either.a)
197197
self.vendorExtensions = vendorExtensions
198198

@@ -209,7 +209,7 @@ extension OpenAPI {
209209
) {
210210
self.schema = .reference(schemaReference.jsonReference)
211211
self.examples = examples
212-
self.example = examples.flatMap(Self.firstExample(from:))
212+
self.example = examples.flatMap(Self.firstExampleValue(from:))
213213
self.encoding = encoding.map(Either.a)
214214
self.vendorExtensions = vendorExtensions
215215

@@ -228,7 +228,7 @@ extension OpenAPI {
228228
self.schema = schema
229229
self.itemSchema = itemSchema
230230
self.examples = examples
231-
self.example = examples.flatMap(Self.firstExample(from:))
231+
self.example = examples.flatMap(Self.firstExampleValue(from:))
232232
self.encoding = encoding.map(Either.a)
233233
self.vendorExtensions = vendorExtensions
234234

@@ -246,7 +246,7 @@ extension OpenAPI {
246246
self.schema = nil
247247
self.itemSchema = itemSchema
248248
self.examples = examples
249-
self.example = examples.flatMap(Self.firstExample(from:))
249+
self.example = examples.flatMap(Self.firstExampleValue(from:))
250250
self.encoding = encoding.map(Either.a)
251251
self.vendorExtensions = vendorExtensions
252252

@@ -265,7 +265,7 @@ extension OpenAPI {
265265
self.schema = nil
266266
self.itemSchema = itemSchema
267267
self.examples = examples
268-
self.example = examples.flatMap(Self.firstExample(from:))
268+
self.example = examples.flatMap(Self.firstExampleValue(from:))
269269
if itemEncoding != nil || prefixEncoding != [] {
270270
self.encoding = .b(.init(prefixEncoding: prefixEncoding, itemEncoding: itemEncoding))
271271
} else {
@@ -336,19 +336,19 @@ extension OpenAPI.Content {
336336
///
337337
/// Operates on a dictionary with values that may be either
338338
/// an Example or a reference to and example.
339-
internal static func firstExample(from exampleDict: OpenAPI.Example.Map) -> AnyCodable? {
339+
internal static func firstExampleValue(from exampleDict: OpenAPI.Example.Map) -> AnyCodable? {
340340
return exampleDict
341341
.lazy
342-
.compactMap { $0.value.exampleValue?.value?.codableValue }
342+
.compactMap { (_, exampleOrRef) in exampleOrRef.exampleValue?.value?.value }
343343
.first
344344
}
345345

346346
/// Pulls the first example found in the example dictionary
347347
/// given.
348-
internal static func firstExample(from exampleDict: OrderedDictionary<String, OpenAPI.Example>) -> AnyCodable? {
348+
internal static func firstExampleValue(from exampleDict: OrderedDictionary<String, OpenAPI.Example>) -> AnyCodable? {
349349
return exampleDict
350350
.lazy
351-
.compactMap { $0.value.value?.codableValue }
351+
.compactMap { (_, example) in example.value?.value }
352352
.first
353353
}
354354
}
@@ -434,7 +434,7 @@ extension OpenAPI.Content: Decodable {
434434
} else {
435435
let examplesMap = try container.decodeIfPresent(OpenAPI.Example.Map.self, forKey: .examples)
436436
examples = examplesMap
437-
example = examplesMap.flatMap(Self.firstExample(from:))
437+
example = examplesMap.flatMap(Self.firstExampleValue(from:))
438438
}
439439

440440
vendorExtensions = try Self.extensions(from: decoder)

Sources/OpenAPIKit/Content/DereferencedContent.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public struct DereferencedContent: Equatable {
5252
}
5353
self.examples = examples
5454

55-
self.example = examples.flatMap(OpenAPI.Content.firstExample(from:))
55+
self.example = examples.flatMap(OpenAPI.Content.firstExampleValue(from:))
5656
?? content.example
5757

5858
switch content.encoding {

Sources/OpenAPIKit/Example.swift

Lines changed: 0 additions & 219 deletions
This file was deleted.

0 commit comments

Comments
 (0)