Replaced the Tuple schema for the OpenAPI specification document in the library target with per-type key-name payloads.

This commit is contained in:
2026-07-26 02:06:40 +02:00
parent c1c6f147f6
commit 64117bea5c
8 changed files with 102 additions and 67 deletions
@@ -191,9 +191,9 @@ private extension AmiiboLiveClient {
case let .json(output):
switch output.amiibo {
case let .AmiiboSeries(payload):
return makeModels(from: [payload.value1])
return makeModels(from: [payload])
case let .case2(list):
return makeModels(from: list.map(\.value1))
return makeModels(from: list)
}
}
case .badRequest:
@@ -227,9 +227,9 @@ private extension AmiiboLiveClient {
case let .json(output):
switch output.amiibo {
case let .AmiiboType(payload):
return makeModels(from: [payload.value1])
return makeModels(from: [payload])
case let .case2(list):
return makeModels(from: list.map(\.value1))
return makeModels(from: list)
}
}
case .badRequest:
@@ -263,9 +263,9 @@ private extension AmiiboLiveClient {
case let .json(output):
switch output.amiibo {
case let .GameCharacter(payload):
return makeModels(from: [payload.value1])
return makeModels(from: [payload])
case let .case2(list):
return makeModels(from: list.map(\.value1))
return makeModels(from: list)
}
}
case .badRequest:
@@ -299,9 +299,9 @@ private extension AmiiboLiveClient {
case let .json(output):
switch output.amiibo {
case let .GameSeries(payload):
return makeModels(from: [payload.value1])
return makeModels(from: [payload])
case let .case2(list):
return makeModels(from: list.map(\.value1))
return makeModels(from: list)
}
}
case .badRequest:
@@ -350,11 +350,11 @@ private extension AmiiboLiveClient {
}
}
/// Maps a list of key-name tuples into a sorted list of models.
/// - Parameter tuples: A list of tuples to map into models.
/// Maps a list of key-name payloads into a sorted list of models.
/// - Parameter payloads: A list of payloads to map into models.
/// - Returns: A list of models sorted by their keys in ascending order.
func makeModels<Model: KeyNameModel>(from tuples: [Components.Schemas.Tuple]) -> [Model] {
tuples
func makeModels<Model: KeyNameModel>(from payloads: [some KeyNamePayload]) -> [Model] {
payloads
.map { Model($0) }
.sorted { $0.key < $1.key }
}