Skip to content

Commit 4511cde

Browse files
committed
update OpenAPIKit version, fix playground pages.
1 parent 0f456f4 commit 4511cde

File tree

4 files changed

+41
-40
lines changed

4 files changed

+41
-40
lines changed

JSONAPI.playground/Pages/OpenAPI Examples.xcplaygroundpage/Contents.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,13 @@ let tmp: [String: JSONSchema] = [
3636
]
3737

3838
let components = OpenAPI.Components(schemas: tmp,
39+
responses: [:],
3940
parameters: [:],
41+
examples: [:],
42+
requestBodies: [:],
4043
headers: [:])
4144

42-
let batchPeopleRef = JSONReference.internal(.node(.init(type: \OpenAPI.Components.schemas, selector: "BatchPerson")))
45+
let batchPeopleRef = JSONReference.internal(.node(\OpenAPI.Components.schemas, named: "BatchPerson"))
4346

4447
let tmp2 = JSONSchema.reference(batchPeopleRef)
4548

JSONAPI.playground/Sources/OpenAPISupport.swift

Lines changed: 34 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,70 +3,68 @@ import JSONAPI
33
import JSONAPITesting // for the convenience of literal initialization
44
import JSONAPIOpenAPI
55
import SwiftCheck
6-
import JSONAPIArbitrary
76
import Sampleable
87

9-
extension PersonDescription.Attributes: Arbitrary, Sampleable {
10-
public static var arbitrary: Gen<PersonDescription.Attributes> {
11-
return Gen.compose { c in
12-
return PersonDescription.Attributes(name: c.generate(),
13-
favoriteColor: c.generate())
14-
}
15-
}
16-
8+
extension PersonDescription.Attributes: Sampleable {
179
public static var sample: PersonDescription.Attributes {
1810
return .init(name: ["Abbie", "Eibba"], favoriteColor: "Blue")
1911
}
2012
}
2113

22-
extension PersonDescription.Relationships: Arbitrary, Sampleable {
23-
public static var arbitrary: Gen<PersonDescription.Relationships> {
24-
return Gen.compose { c in
25-
return PersonDescription.Relationships(friends: c.generate(),
26-
dogs: c.generate(),
27-
home: c.generate())
28-
}
29-
}
30-
14+
extension PersonDescription.Relationships: Sampleable {
3115
public static var sample: PersonDescription.Relationships {
3216
return .init(friends: ["1", "2"], dogs: ["2"], home: "1")
3317
}
3418
}
3519

36-
extension DogDescription.Attributes: Arbitrary, Sampleable {
37-
public static var arbitrary: Gen<DogDescription.Attributes> {
38-
return Gen.compose { c in
39-
return DogDescription.Attributes(name: c.generate())
40-
}
41-
}
42-
20+
extension DogDescription.Attributes: Sampleable {
4321
public static var sample: DogDescription.Attributes {
4422
return DogDescription.Attributes(name: "Sparky")
4523
}
4624
}
4725

48-
extension DogDescription.Relationships: Arbitrary, Sampleable {
49-
public static var arbitrary: Gen<DogDescription.Relationships> {
50-
return Gen.compose { c in
51-
return DogDescription.Relationships(owner: c.generate())
52-
}
53-
}
54-
26+
extension DogDescription.Relationships: Sampleable {
5527
public static var sample: DogDescription.Relationships {
5628
return DogDescription.Relationships(owner: "1")
5729
}
5830
}
5931

60-
extension Document: Sampleable where PrimaryResourceBody: Arbitrary, IncludeType: Arbitrary, MetaType: Arbitrary, LinksType: Arbitrary, Error: Arbitrary, APIDescription: Arbitrary {
32+
private var counter = 1
33+
extension Id: Sampleable where RawType == String {
34+
public static var sample: Id<RawType, IdentifiableType> {
35+
let id = "\(counter)"
36+
counter = counter + 1
37+
return .init(rawValue: id)
38+
}
39+
}
40+
41+
extension JSONAPI.ResourceObject: Sampleable where Description.Attributes: Sampleable, Description.Relationships: Sampleable, MetaType: Sampleable, LinksType: Sampleable, EntityRawIdType == String {
42+
public static var sample: JSONAPI.ResourceObject<Description, MetaType, LinksType, EntityRawIdType> {
43+
return JSONAPI.ResourceObject(id: .sample,
44+
attributes: .sample,
45+
relationships: .sample,
46+
meta: .sample,
47+
links: .sample)
48+
}
49+
}
50+
51+
extension Document: Sampleable where PrimaryResourceBody: Sampleable, IncludeType: Sampleable, MetaType: Sampleable, LinksType: Sampleable, Error: Sampleable, APIDescription: Sampleable {
6152
public static var sample: Document {
62-
return Document.arbitrary.generate
53+
return successSample!
6354
}
6455

6556
public static var successSample: Document? {
66-
return Document.arbitraryData.generate
57+
return Document(apiDescription: APIDescription.sample,
58+
body: PrimaryResourceBody.sample,
59+
includes: .init(values: IncludeType.samples),
60+
meta: MetaType.sample,
61+
links: LinksType.sample)
6762
}
6863

6964
public static var failureSample: Document? {
70-
return Document.arbitraryErrors.generate
65+
return Document(apiDescription: APIDescription.sample,
66+
errors: Error.samples,
67+
meta: MetaType.sample,
68+
links: LinksType.sample)
7169
}
7270
}

Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ let package = Package(
1414
.package(url: "https://github.com/Flight-School/AnyCodable.git", .upToNextMinor(from: "0.2.2")),
1515
.package(url: "https://github.com/mattpolzin/Sampleable.git", .upToNextMajor(from: "2.0.0")),
1616
.package(url: "https://github.com/mattpolzin/JSONAPI.git", .upToNextMajor(from: "2.5.0")),
17-
.package(url: "https://github.com/mattpolzin/OpenAPI.git", .upToNextMinor(from: "0.4.0")),
17+
.package(url: "https://github.com/mattpolzin/OpenAPI.git", .upToNextMinor(from: "0.7.0")),
1818
.package(url: "https://github.com/typelift/SwiftCheck.git", .upToNextMinor(from: "0.12.0"))
1919
],
2020
targets: [

0 commit comments

Comments
 (0)