diff --git a/JSONAPI.playground/Contents.swift b/JSONAPI.playground/Contents.swift index 3e84cb5..1558f9f 100644 --- a/JSONAPI.playground/Contents.swift +++ b/JSONAPI.playground/Contents.swift @@ -11,7 +11,7 @@ Please enjoy these examples, but allow me the forced casting and the lack of err // MARK: - Create a request or response body with one Dog in it let dogFromCode = try! Dog(name: "Buddy", owner: nil) -typealias SingleDogDocument = JSONAPIDocument, NoIncludes, BasicJSONAPIError> +typealias SingleDogDocument = JSONAPIDocument, NoMetadata, NoLinks, NoIncludes, UnknownJSONAPIError> let singleDogDocument = SingleDogDocument(body: SingleResourceBody(entity: dogFromCode)) @@ -19,7 +19,7 @@ let singleDogData = try! JSONEncoder().encode(singleDogDocument) // MARK: - Parse a request or response body with one Dog in it let dogResponse = try! JSONDecoder().decode(SingleDogDocument.self, from: singleDogData) -let dogFromData = dogResponse.body.data?.primary.value +let dogFromData = dogResponse.body.primaryData?.value // MARK: - Create a request or response with multiple people and dogs and houses included let personIds = [Person.Identifier(), Person.Identifier()] @@ -27,7 +27,7 @@ let dogs = try! [Dog(name: "Buddy", owner: personIds[0]), Dog(name: "Joy", owner let houses = [House(), House()] let people = try! [Person(id: personIds[0], name: ["Gary", "Doe"], favoriteColor: "Orange-Red", friends: [], dogs: [dogs[0], dogs[1]], home: houses[0]), Person(id: personIds[1], name: ["Elise", "Joy"], favoriteColor: "Red", friends: [], dogs: [dogs[2]], home: houses[1])] -typealias BatchPeopleDocument = JSONAPIDocument, Include2, BasicJSONAPIError> +typealias BatchPeopleDocument = JSONAPIDocument, NoMetadata, NoLinks, Include2, UnknownJSONAPIError> let includes = dogs.map { BatchPeopleDocument.Include($0) } + houses.map { BatchPeopleDocument.Include($0) } let batchPeopleDocument = BatchPeopleDocument(body: .init(entities: people), includes: .init(values: includes)) @@ -36,6 +36,6 @@ let batchPeopleData = try! JSONEncoder().encode(batchPeopleDocument) // MARK: - Parse a request or response body with multiple people in it and dogs and houses included let peopleResponse = try! JSONDecoder().decode(BatchPeopleDocument.self, from: batchPeopleData) -let peopleFromData = peopleResponse.body.data?.primary.values -let dogsFromData = peopleResponse.body.data?.included[Dog.self] -let housesFromData = peopleResponse.body.data?.included[House.self] +let peopleFromData = peopleResponse.body.primaryData?.values +let dogsFromData = peopleResponse.body.includes?[Dog.self] +let housesFromData = peopleResponse.body.includes?[House.self]