Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bc0ae63719 | |||
| 3d923982b1 | |||
| 19583290be | |||
| 0af0e3056d | |||
| b39fd8533b | |||
| 410a200661 | |||
| 37c0f3e322 | |||
| 39c6d6e8d6 |
@@ -0,0 +1,10 @@
|
||||
# --- DOCUMENTATION ---
|
||||
|
||||
DOCC_GITHUB_OUTPUT=./docs
|
||||
DOCC_GITHUB_BASE_PATH=amiibo-service
|
||||
DOCC_PREVIEW_URL=http://localhost:8080/documentation/amiiboservice
|
||||
DOCC_XCODE_OUTPUT=./${SPM_LIBRARY_TARGET}.doccarchive
|
||||
|
||||
# -- SWIFT PACKAGE MANAGER ---
|
||||
|
||||
SPM_LIBRARY_TARGET=AmiiboService
|
||||
+7
-4
@@ -2,9 +2,6 @@
|
||||
.DS_Store
|
||||
.netrc
|
||||
|
||||
# Visual Studio Code
|
||||
.vscode
|
||||
|
||||
# Xcode
|
||||
DerivedData/
|
||||
|
||||
@@ -31,4 +28,10 @@ Packages/
|
||||
# hence it is not needed unless you have added a package configuration file to your project
|
||||
.swiftpm
|
||||
.swiftpm/configuration/registries.json
|
||||
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
|
||||
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
|
||||
|
||||
# Visual Studio Code
|
||||
.vscode
|
||||
|
||||
# DocC documentation
|
||||
*.doccarchive
|
||||
@@ -0,0 +1,3 @@
|
||||
version: 1
|
||||
external_links:
|
||||
documentation: "https://rock-n-code.github.io/amiibo-service/documentation/amiiboservice/"
|
||||
@@ -1,8 +1,8 @@
|
||||
# ===----------------------------------------------------------------------===
|
||||
#
|
||||
# This source file is part of the AmiiboAPI open source project
|
||||
# This source file is part of the AmiiboService open source project
|
||||
#
|
||||
# Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
# Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
# Licensed under the EUPL 1.2 or later.
|
||||
#
|
||||
# See LICENSE for license information
|
||||
@@ -17,30 +17,71 @@ environment ?= .env
|
||||
include $(environment)
|
||||
export $(shell sed 's/=.*//' $(environment))
|
||||
|
||||
# IDE
|
||||
# LIBRARY
|
||||
|
||||
open-in-xcode: ## Opens this package with Xcode
|
||||
@open -a Xcode Package.swift
|
||||
lib-build: ## Builds the project locally
|
||||
@swift build
|
||||
|
||||
open-in-vscode: ## Opens this package with Visual Studio Code
|
||||
@code .
|
||||
lib-test: ## Runs the tests of the library
|
||||
@swift test \
|
||||
--disable-xctest \
|
||||
--enable-code-coverage \
|
||||
--enable-swift-testing \
|
||||
--parallel
|
||||
|
||||
# SWIFT PACKAGE MANAGER
|
||||
|
||||
package-build: ## Builds the project locally
|
||||
@swift build
|
||||
|
||||
package-clean: ## Deletes built SPM artifacts from the package
|
||||
pkg-clean: ## Deletes built SPM artifacts of the package
|
||||
@swift package clean
|
||||
|
||||
package-outdated: ## Lists the SPM package dependencies that can be updated
|
||||
@swift package update --dry-run
|
||||
|
||||
package-reset: ## Resets the complete SPM cache/build folder from the package
|
||||
pkg-reset: ## Resets the complete SPM cache/build folder of the package
|
||||
@swift package reset
|
||||
|
||||
package-update: ## Updates the SPM package dependencies
|
||||
pkg-pristine: pkg-clean pkg-reset ## Deletes all built artifacts, caches, and documentations of the package
|
||||
@rm -drf $(DOCC_GITHUB_OUTPUT)
|
||||
@rm -drf $(DOCC_XCODE_OUTPUT)
|
||||
|
||||
pkg-outdated: ## Lists the SPM package dependencies that can be updated
|
||||
@swift package update --dry-run
|
||||
|
||||
pkg-update: ## Updates the SPM package dependencies
|
||||
@swift package update
|
||||
|
||||
# DOCUMENTATION
|
||||
|
||||
doc-generate: doc-generate-xcode doc-generate-github ## Generates the library documentation for both Github and Xcode
|
||||
|
||||
doc-generate-github: ## Generates the library documentation for Github
|
||||
@swift package \
|
||||
--allow-writing-to-directory $(DOCC_GITHUB_OUTPUT) \
|
||||
generate-documentation \
|
||||
--target $(SPM_LIBRARY_TARGET) \
|
||||
--disable-indexing \
|
||||
--transform-for-static-hosting \
|
||||
--hosting-base-path $(DOCC_GITHUB_BASE_PATH) \
|
||||
--output-path $(DOCC_GITHUB_OUTPUT)
|
||||
|
||||
doc-generate-xcode: ## Generates the library documentation for Xcode
|
||||
@swift package \
|
||||
--allow-writing-to-directory $(DOCC_XCODE_OUTPUT) \
|
||||
generate-documentation \
|
||||
--target $(SPM_LIBRARY_TARGET) \
|
||||
--output-path $(DOCC_XCODE_OUTPUT)
|
||||
|
||||
doc-preview: ## Previews the library documentation in Safari
|
||||
@open -a safari $(DOCC_PREVIEW_URL)
|
||||
@swift package \
|
||||
--disable-sandbox \
|
||||
preview-documentation \
|
||||
--target $(SPM_LIBRARY_TARGET)
|
||||
|
||||
# IDE
|
||||
|
||||
ide-xcode: ## Opens this package with Xcode
|
||||
@open -a Xcode Package.swift
|
||||
|
||||
ide-vscode: ## Opens this package with Visual Studio Code
|
||||
@code .
|
||||
|
||||
# HELP
|
||||
|
||||
|
||||
+21
-40
@@ -2,9 +2,9 @@
|
||||
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -15,7 +15,7 @@
|
||||
import PackageDescription
|
||||
|
||||
let package = Package(
|
||||
name: AmiiboAPI.package,
|
||||
name: AmiiboService.package,
|
||||
platforms: [
|
||||
.iOS(.v13),
|
||||
.macOS(.v10_15),
|
||||
@@ -25,61 +25,42 @@ let package = Package(
|
||||
],
|
||||
products: [
|
||||
.library(
|
||||
name: AmiiboAPI.package,
|
||||
targets: [
|
||||
AmiiboAPI.target
|
||||
]
|
||||
name: AmiiboService.package,
|
||||
targets: [AmiiboService.target]
|
||||
)
|
||||
],
|
||||
dependencies: [
|
||||
.package(
|
||||
url: "https://github.com/apple/swift-openapi-generator.git",
|
||||
from: "1.3.0"
|
||||
),
|
||||
.package(
|
||||
url: "https://github.com/apple/swift-openapi-runtime",
|
||||
from: "1.5.0"
|
||||
),
|
||||
.package(
|
||||
url: "https://github.com/apple/swift-openapi-urlsession",
|
||||
from: "1.0.2"
|
||||
)
|
||||
.package(url: "https://github.com/apple/swift-openapi-generator.git", from: "1.3.0"),
|
||||
.package(url: "https://github.com/apple/swift-openapi-runtime", from: "1.5.0"),
|
||||
.package(url: "https://github.com/apple/swift-openapi-urlsession", from: "1.0.2"),
|
||||
.package(url: "https://github.com/swiftlang/swift-docc-plugin", from: "1.1.0"),
|
||||
],
|
||||
targets: [
|
||||
.target(
|
||||
name: AmiiboAPI.target,
|
||||
name: AmiiboService.target,
|
||||
dependencies: [
|
||||
.product(
|
||||
name: "OpenAPIRuntime",
|
||||
package: "swift-openapi-runtime"
|
||||
),
|
||||
.product(
|
||||
name: "OpenAPIURLSession",
|
||||
package: "swift-openapi-urlsession"
|
||||
)
|
||||
.product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
|
||||
.product(name: "OpenAPIURLSession", package: "swift-openapi-urlsession")
|
||||
],
|
||||
path: "Sources",
|
||||
path: "Sources/AmiiboService",
|
||||
plugins: [
|
||||
.plugin(
|
||||
name: "OpenAPIGenerator",
|
||||
package: "swift-openapi-generator"
|
||||
),
|
||||
.plugin(name: "OpenAPIGenerator", package: "swift-openapi-generator"),
|
||||
]
|
||||
),
|
||||
.testTarget(
|
||||
name: AmiiboAPI.test,
|
||||
name: AmiiboService.test,
|
||||
dependencies: [
|
||||
.byName(name: AmiiboAPI.target)
|
||||
.byName(name: AmiiboService.target)
|
||||
],
|
||||
path: "Tests"
|
||||
path: "Tests/AmiiboService"
|
||||
),
|
||||
]
|
||||
)
|
||||
|
||||
// MARK: - Constants
|
||||
|
||||
enum AmiiboAPI {
|
||||
static let package = "amiibo-api"
|
||||
static let target = "AmiiboAPI"
|
||||
static let test = "\(AmiiboAPI.target)Tests"
|
||||
enum AmiiboService {
|
||||
static let package = "amiibo-service"
|
||||
static let target = "AmiiboService"
|
||||
static let test = "\(AmiiboService.target)Tests"
|
||||
}
|
||||
|
||||
@@ -1 +1,37 @@
|
||||
# Amiibo API
|
||||
# Amiibo Service
|
||||
|
||||
[](https://swiftpackageindex.com/rock-n-code/amiibo-service)
|
||||
[](https://swiftpackageindex.com/rock-n-code/amiibo-service)
|
||||
|
||||
A library written entirely with [Swift](https://www.swift.org) that provides everything the developer needs to interacts with the [Amiibo API](https://www.amiiboapi.com) backend service.
|
||||
|
||||
## Installation
|
||||
|
||||
To use this library with your package, then add it as a dependency in the `Package.swift` file:
|
||||
|
||||
```swift
|
||||
let package = Package(
|
||||
// name, platforms, products, etc.
|
||||
dependencies: [
|
||||
.package(url: "https://github.com/rock-n-code/amiibo-service", from: "1.0.0"),
|
||||
// other dependencies
|
||||
],
|
||||
targets: [
|
||||
.target(
|
||||
name: "SomeTarget",
|
||||
dependencies: [
|
||||
.product(name: "AmiiboService", package: "amiibo-service"),
|
||||
]
|
||||
)
|
||||
// other targets
|
||||
]
|
||||
)
|
||||
```
|
||||
|
||||
It is also possible to use this library with your app in Xcode, then add it as a dependency in your Xcode project.
|
||||
|
||||
> important: Swift 5.9 or higher is required in order to compile this library.
|
||||
|
||||
## Documentation
|
||||
|
||||
Please refer to the [online documentation](https://rock-n-code.github.io/amiibo-service/documentation/amiiboservice/) for further informations about this library.
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
# ``AmiiboService``
|
||||
|
||||
A library that provides everything the developer needs to interacts with the **Amiibo API** backend service.
|
||||
|
||||
## Overview
|
||||
|
||||
The `AmiiboService` library is a Swift Package Manager package dependency aims at allowing the developer to interact with the [Amiibo API](https://www.amiiboapi.com) backend service seamlessly, by not only providing the *service* type but also any possible *clients*, *models*, *filters* and *errors* types that might be needed during implementation.
|
||||
|
||||
## Design
|
||||
|
||||
Although it could have been possible to generate a one-to-one RESTful client based on the Open API specification document that describe the available endpoints of the backend service, it was decided to design a `AmiiboService` service type that removes the complexities of the API design imposed by the backend service, and provides the developer with a simple interface, and a seamless experience.
|
||||
|
||||
## Installation
|
||||
|
||||
To use the `AmiiboService` library with your package, then add it as a dependency in the `Package.swift` file:
|
||||
|
||||
```swift
|
||||
let package = Package(
|
||||
// name, platforms, products, etc.
|
||||
dependencies: [
|
||||
.package(url: "https://github.com/rock-n-code/amiibo-service", from: "1.0.0"),
|
||||
// other dependencies
|
||||
],
|
||||
targets: [
|
||||
.target(
|
||||
name: "SomeTarget",
|
||||
dependencies: [
|
||||
.product(name: "AmiiboService", package: "amiibo-service"),
|
||||
]
|
||||
)
|
||||
// other targets
|
||||
]
|
||||
)
|
||||
```
|
||||
|
||||
It is also possible to use the `AmiiboService` library with your app in Xcode, then add it as a dependency in your Xcode project.
|
||||
|
||||
> important: Swift 5.9 or higher is required in order to compile this library.
|
||||
|
||||
## Tasks
|
||||
|
||||
This library offers a set of ready-to-use project management tasks that the developer could use from the command line. To show the list of tasks on the `Terminal` app, plus display some explanations about each and every one of them; please enter the following command:
|
||||
|
||||
```bash
|
||||
$ make
|
||||
```
|
||||
|
||||
## Topics
|
||||
|
||||
### Service
|
||||
|
||||
- ``AmiiboService``
|
||||
|
||||
### Clients
|
||||
|
||||
- ``AmiiboClient``
|
||||
- ``AmiiboLiveClient``
|
||||
|
||||
### Models
|
||||
|
||||
- ``Amiibo``
|
||||
- ``Amiibo/Game``
|
||||
- ``Amiibo/Platform``
|
||||
- ``Amiibo/Release``
|
||||
- ``Amiibo/Usage``
|
||||
- ``AmiiboSeries``
|
||||
- ``AmiiboType``
|
||||
- ``GameCharacter``
|
||||
- ``GameSeries``
|
||||
|
||||
### Filters
|
||||
|
||||
- ``AmiiboFilter``
|
||||
- ``AmiiboSeriesFilter``
|
||||
- ``AmiiboTypeFilter``
|
||||
- ``GameCharacterFilter``
|
||||
- ``GameSeriesFilter``
|
||||
|
||||
### Errors
|
||||
|
||||
- ``AmiiboServiceError``
|
||||
+9
-3
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -14,7 +14,13 @@ import Foundation
|
||||
|
||||
extension DateFormatter {
|
||||
|
||||
static var isoDateTime: DateFormatter {
|
||||
// MARK: Properties
|
||||
|
||||
/// An ISO timestamp formatter.
|
||||
///
|
||||
/// This formatter implements the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` custom date format.
|
||||
/// Within the context of this library, this formatter is solely used to decode a date formatted as a timestamp that is returned by the ``AmiiboService/getLastUpdated()`` function.
|
||||
static var isoTimestamp: DateFormatter {
|
||||
let formatter = DateFormatter()
|
||||
|
||||
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
|
||||
@@ -0,0 +1,37 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A protocol that defines filters that might contain `key` and/or `name` values.
|
||||
protocol KeyNameFilter {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A key to return, if any.
|
||||
var key: String? { get }
|
||||
|
||||
/// A name to return, if any.
|
||||
var name: String? { get }
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this filter without key or name values.
|
||||
init()
|
||||
|
||||
/// Initializes this filter with a key value.
|
||||
/// - Parameter key: A key to return.
|
||||
init(key: String)
|
||||
|
||||
/// Initializes this filter with a name value.
|
||||
/// - Parameter name: A name to return.
|
||||
init(name: String)
|
||||
|
||||
}
|
||||
+9
-3
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -10,15 +10,21 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A protocol that defines decodable models containing the `key` and `name` properties.
|
||||
protocol KeyNameModel: Sendable {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A key.
|
||||
var key: String { get }
|
||||
|
||||
/// A name.
|
||||
var name: String { get }
|
||||
|
||||
// MARK: Initialisers
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this model from a given payload.
|
||||
/// - Parameter payload: A payload that contains the values for the model.
|
||||
init(_ payload: Components.Schemas.Tuple)
|
||||
|
||||
}
|
||||
+14
-5
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -13,10 +13,19 @@
|
||||
import Foundation
|
||||
import OpenAPIRuntime
|
||||
|
||||
struct ISODateTranscoder: DateTranscoder {
|
||||
|
||||
/// A type that allows the decoding and encoding of ISO timestamp dates, defined by the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` custom date format.
|
||||
struct ISOTimestampTranscoder {
|
||||
|
||||
// MARK: Properties
|
||||
private let dateFormatter: DateFormatter = .isoDateTime
|
||||
|
||||
/// A formatter to use to decode and encode ISO timestamps dates.
|
||||
private let dateFormatter: DateFormatter = .isoTimestamp
|
||||
|
||||
}
|
||||
|
||||
// MARK: - DateTranscoder
|
||||
|
||||
extension ISOTimestampTranscoder: DateTranscoder {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
@@ -0,0 +1,563 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
import Foundation
|
||||
import OpenAPIRuntime
|
||||
import OpenAPIURLSession
|
||||
|
||||
/// A type that implements a live client to the online service.
|
||||
public struct AmiiboLiveClient {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A client generated by the `OpenAPIRuntime` library.
|
||||
private let client: Client
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this client.
|
||||
public init() {
|
||||
self.client = .init(
|
||||
// The force unwrapping implemented below assumes that the server definition from the OpenAPI specification is correct.
|
||||
serverURL: try! Servers.Server1.url(),
|
||||
configuration: .init(dateTranscoder: ISOTimestampTranscoder()),
|
||||
transport: URLSessionTransport()
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - AmiiboClient
|
||||
// TODO: Remove the documentation from the functions inside the following extension as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
||||
|
||||
extension AmiiboLiveClient: AmiiboClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
#if swift(>=6.0)
|
||||
/// Gets a list of amiibo items based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo items.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiibos(
|
||||
by filter: AmiiboFilter
|
||||
) async throws(AmiiboServiceError) -> [Amiibo] {
|
||||
let response: Operations.getAmiibos.Output
|
||||
|
||||
do {
|
||||
response = try await client.getAmiibos(
|
||||
.init(query: .init(
|
||||
amiiboSeries: filter.series,
|
||||
character: filter.gameCharacter,
|
||||
gameseries: filter.gameSeries,
|
||||
id: filter.identifier,
|
||||
name: filter.name,
|
||||
showgames: filter.showGames,
|
||||
showusage: filter.showUsage,
|
||||
_type: filter.type
|
||||
))
|
||||
)
|
||||
} catch let error as ClientError {
|
||||
if error.underlyingError is DecodingError {
|
||||
throw AmiiboServiceError.decoding
|
||||
} else {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets a list of amiibo series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiiboSeries(
|
||||
by filter: AmiiboSeriesFilter
|
||||
) async throws(AmiiboServiceError) -> [AmiiboSeries] {
|
||||
let response: Operations.getAmiiboSeries.Output
|
||||
|
||||
do {
|
||||
response = try await client.getAmiiboSeries(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: AmiiboSeries.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets a list of amiibo types based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo types.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiiboTypes(
|
||||
by filter: AmiiboTypeFilter
|
||||
) async throws(AmiiboServiceError) -> [AmiiboType] {
|
||||
let response: Operations.getAmiiboTypes.Output
|
||||
|
||||
do {
|
||||
response = try await client.getAmiiboTypes(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: AmiiboType.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets a list of game characters based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game characters.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getGameCharacters(
|
||||
by filter: GameCharacterFilter
|
||||
) async throws(AmiiboServiceError) -> [GameCharacter] {
|
||||
let response: Operations.getGameCharacters.Output
|
||||
|
||||
do {
|
||||
response = try await client.getGameCharacters(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: GameCharacter.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets a list of game series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getGameSeries(
|
||||
by filter: GameSeriesFilter
|
||||
) async throws(AmiiboServiceError) -> [GameSeries] {
|
||||
let response: Operations.getGameSeries.Output
|
||||
|
||||
do {
|
||||
response = try await client.getGameSeries(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: GameSeries.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets the date when the data was last updated.
|
||||
/// - Returns: A last updated date.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getLastUpdated() async throws(AmiiboServiceError) -> Date {
|
||||
let response: Operations.getLastUpdated.Output
|
||||
|
||||
do {
|
||||
response = try await client.getLastUpdated()
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return output.lastUpdated
|
||||
}
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
#else
|
||||
/// Gets a list of amiibo items based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo items.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiibos(
|
||||
by filter: AmiiboFilter
|
||||
) async throws -> [Amiibo] {
|
||||
let response: Operations.getAmiibos.Output
|
||||
|
||||
do {
|
||||
response = try await client.getAmiibos(
|
||||
.init(query: .init(
|
||||
amiiboSeries: filter.series,
|
||||
character: filter.gameCharacter,
|
||||
gameseries: filter.gameSeries,
|
||||
id: filter.identifier,
|
||||
name: filter.name,
|
||||
showgames: filter.showGames,
|
||||
showusage: filter.showUsage,
|
||||
_type: filter.type
|
||||
))
|
||||
)
|
||||
} catch let error as ClientError {
|
||||
if error.underlyingError is DecodingError {
|
||||
throw AmiiboServiceError.decoding
|
||||
} else {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets a list of amiibo series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiiboSeries(
|
||||
by filter: AmiiboSeriesFilter
|
||||
) async throws -> [AmiiboSeries] {
|
||||
let response: Operations.getAmiiboSeries.Output
|
||||
|
||||
do {
|
||||
response = try await client.getAmiiboSeries(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: AmiiboSeries.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets a list of amiibo types based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo types.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiiboTypes(
|
||||
by filter: AmiiboTypeFilter
|
||||
) async throws -> [AmiiboType] {
|
||||
let response: Operations.getAmiiboTypes.Output
|
||||
|
||||
do {
|
||||
response = try await client.getAmiiboTypes(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: AmiiboType.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets a list of game characters based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game characters.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getGameCharacters(
|
||||
by filter: GameCharacterFilter
|
||||
) async throws -> [GameCharacter] {
|
||||
let response: Operations.getGameCharacters.Output
|
||||
|
||||
do {
|
||||
response = try await client.getGameCharacters(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: GameCharacter.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets a list of game series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getGameSeries(
|
||||
by filter: GameSeriesFilter
|
||||
) async throws -> [GameSeries] {
|
||||
let response: Operations.getGameSeries.Output
|
||||
|
||||
do {
|
||||
response = try await client.getGameSeries(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: GameSeries.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets the date when the data was last updated.
|
||||
/// - Returns: A last updated date.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getLastUpdated() async throws -> Date {
|
||||
let response: Operations.getLastUpdated.Output
|
||||
|
||||
do {
|
||||
response = try await client.getLastUpdated()
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return output.lastUpdated
|
||||
}
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Helpers
|
||||
|
||||
private extension AmiiboLiveClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
/// Retrieves a list of amiibo items from a wrapper container.
|
||||
/// - Parameter wrapper: A wrapper container that either has an object or a list of items.
|
||||
/// - Returns: A list of amiibo items, sorted by identifiers.
|
||||
func map(
|
||||
_ wrapper: Components.Schemas.AmiiboWrapper
|
||||
) -> [Amiibo] {
|
||||
switch wrapper.amiibo {
|
||||
case let .Amiibo(object):
|
||||
return [.init(object)]
|
||||
|
||||
case let .AmiiboList(list):
|
||||
return list
|
||||
.map { .init($0) }
|
||||
.sorted { $0.identifier < $1.identifier }
|
||||
}
|
||||
}
|
||||
|
||||
/// Retrieves a list of items that conforms to the `KeyNameModel` protocol from a wrapper container.
|
||||
/// - Parameters:
|
||||
/// - wrapper: A wrapper container that either has an object or a list of items.
|
||||
/// - as: a model type that conforms to the `KeyNameModel` protocol.
|
||||
/// - Returns: A list of items that conforms to the `KeyNameModel` protocol, sorted by keys.
|
||||
func map<Model: KeyNameModel>(
|
||||
_ wrapper: Components.Schemas.TupleWrapper,
|
||||
as: Model.Type
|
||||
) -> [Model] {
|
||||
switch wrapper.amiibo {
|
||||
case let .Tuple(payload):
|
||||
return [.init(payload)]
|
||||
|
||||
case let .TupleList(list):
|
||||
return list
|
||||
.map { .init($0) }
|
||||
.sorted { $0.key < $1.key }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+9
-2
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -10,12 +10,19 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A representation of all the possible errors that the ``AmiiboService`` service could throw.
|
||||
public enum AmiiboServiceError: Error {
|
||||
/// A bad request has been given to the client.
|
||||
case badRequest
|
||||
/// A response cannot be decoded.
|
||||
case decoding
|
||||
/// An online service is not currently available.
|
||||
case notAvailable
|
||||
/// A response cannot be found.
|
||||
case notFound
|
||||
/// An undocumented/unsupported status code error.
|
||||
case undocumented(_ statusCode: Int)
|
||||
/// An unknown error.
|
||||
case unknown
|
||||
}
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A type that contains values to fine-tune a response when requesting amiibo items.
|
||||
public struct AmiiboFilter {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A game character to return, if any.
|
||||
public let gameCharacter: String?
|
||||
|
||||
/// A game series to return, if any.
|
||||
public let gameSeries: String?
|
||||
|
||||
/// An amiibo identifier to return, if any.
|
||||
public let identifier: String?
|
||||
|
||||
/// An amiibo name to return, if any.
|
||||
public let name: String?
|
||||
|
||||
/// An amiibo series to return, if any.
|
||||
public let series: String?
|
||||
|
||||
/// A flag indicating whether to include games in the response, if any.
|
||||
public let showGames: Bool?
|
||||
|
||||
/// A flag indicating whether to include amiibo usages in games in the response, if any.
|
||||
public let showUsage: Bool?
|
||||
|
||||
/// An amiibo type to return, if any.
|
||||
public let type: String?
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this filter.
|
||||
/// - Parameters:
|
||||
/// - identifier: An amiibo identifier to return, if any.
|
||||
/// - name: An amiibo name to return, if any.
|
||||
/// - type: An amiibo type to return, if any.
|
||||
/// - series: An amiibo series to return, if any.
|
||||
/// - gameCharacter: A game character to return, if any.
|
||||
/// - gameSeries: A game series to return, if any.
|
||||
/// - showGames: A flag indicating whether to include games in the response, if any.
|
||||
/// - showUsage: A flag indicating whether to include amiibo usages in games in the response, if any.
|
||||
public init(
|
||||
identifier: String? = nil,
|
||||
name: String? = nil,
|
||||
type: String? = nil,
|
||||
series: String? = nil,
|
||||
gameCharacter: String? = nil,
|
||||
gameSeries: String? = nil,
|
||||
showGames: Bool? = nil,
|
||||
showUsage: Bool? = nil
|
||||
) {
|
||||
self.gameCharacter = gameCharacter
|
||||
self.gameSeries = gameSeries
|
||||
self.identifier = identifier
|
||||
self.name = name
|
||||
self.series = series
|
||||
self.showGames = showGames
|
||||
self.showUsage = showUsage
|
||||
self.type = type
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A type that contains values to fine-tune a response when requesting amiibo series.
|
||||
public struct AmiiboSeriesFilter: KeyNameFilter {
|
||||
|
||||
// TODO: Remove the documentation from the properties and initializers of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A key to return, if any.
|
||||
public let key: String?
|
||||
|
||||
/// A name to return, if any.
|
||||
public let name: String?
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this filter without key or name values.
|
||||
public init() {
|
||||
self.key = nil
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
/// Initializes this filter with a key value.
|
||||
/// - Parameter key: A key to return.
|
||||
public init(key: String) {
|
||||
self.key = key
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
/// Initializes this filter with a name value.
|
||||
/// - Parameter name: A name to return.
|
||||
public init(name: String) {
|
||||
self.key = nil
|
||||
self.name = name
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A type that contains values to fine-tune a response when requesting amiibo types.
|
||||
public struct AmiiboTypeFilter: KeyNameFilter {
|
||||
|
||||
// TODO: Remove the documentation from the properties and initializers of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A key to return, if any.
|
||||
public let key: String?
|
||||
|
||||
/// A name to return, if any.
|
||||
public let name: String?
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this filter without key or name values.
|
||||
public init() {
|
||||
self.key = nil
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
/// Initializes this filter with a key value.
|
||||
/// - Parameter key: A key to return.
|
||||
public init(key: String) {
|
||||
self.key = key
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
/// Initializes this filter with a name value.
|
||||
/// - Parameter name: A name to return.
|
||||
public init(name: String) {
|
||||
self.key = nil
|
||||
self.name = name
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A type that contains values to fine-tune a response when requesting game characters.
|
||||
public struct GameCharacterFilter: KeyNameFilter {
|
||||
|
||||
// TODO: Remove the documentation from the properties and initializers of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A key to return, if any.
|
||||
public let key: String?
|
||||
|
||||
/// A name to return, if any.
|
||||
public let name: String?
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this filter without key or name values.
|
||||
public init() {
|
||||
self.key = nil
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
/// Initializes this filter with a key value.
|
||||
/// - Parameter key: A key to return.
|
||||
public init(key: String) {
|
||||
self.key = key
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
/// Initializes this filter with a name value.
|
||||
/// - Parameter name: A name to return.
|
||||
public init(name: String) {
|
||||
self.key = nil
|
||||
self.name = name
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A type that contains values to fine-tune a response when requesting game series.
|
||||
public struct GameSeriesFilter: KeyNameFilter {
|
||||
|
||||
// TODO: Remove the documentation from the properties and initializers of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A key to return, if any.
|
||||
public let key: String?
|
||||
|
||||
/// A name to return, if any.
|
||||
public let name: String?
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this filter without key or name values.
|
||||
public init() {
|
||||
self.key = nil
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
/// Initializes this filter with a key value.
|
||||
/// - Parameter key: A key to return.
|
||||
public init(key: String) {
|
||||
self.key = key
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
/// Initializes this filter with a name value.
|
||||
/// - Parameter name: A name to return.
|
||||
public init(name: String) {
|
||||
self.key = nil
|
||||
self.name = name
|
||||
}
|
||||
|
||||
}
|
||||
+28
-4
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -12,23 +12,45 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
/// A model that represents an amiibo item.
|
||||
public struct Amiibo: Sendable {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A game character.
|
||||
public let gameCharacter: String
|
||||
|
||||
/// A game series.
|
||||
public let gameSeries: String
|
||||
|
||||
/// The first 8 hexadecimal characters of an identifier.
|
||||
public let head: String
|
||||
|
||||
/// An image link.
|
||||
public let image: String
|
||||
|
||||
/// An amiibo name.
|
||||
public let name: String
|
||||
|
||||
/// A game platform type, if any.
|
||||
public let platform: Platform?
|
||||
|
||||
/// A release date.
|
||||
public let release: Release
|
||||
|
||||
/// An amiibo series.
|
||||
public let series: String
|
||||
|
||||
/// The last 8 hexadecimal characters of an identifier.
|
||||
public let tail: String
|
||||
|
||||
/// An amiibo type.
|
||||
public let type: String
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this model from a given payload.
|
||||
/// - Parameter payload: A payload that contains the values for the model.
|
||||
init(_ payload: Components.Schemas.Amiibo) {
|
||||
self.gameCharacter = payload.character
|
||||
self.gameSeries = payload.gameSeries
|
||||
@@ -48,10 +70,12 @@ public struct Amiibo: Sendable {
|
||||
|
||||
// MARK: Computed
|
||||
|
||||
/// An identifier.
|
||||
public var identifier: String {
|
||||
head + tail
|
||||
}
|
||||
|
||||
/// A URL related to an image link, if any.
|
||||
public var imageURL: URL? {
|
||||
.init(string: image)
|
||||
}
|
||||
+12
-4
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -11,16 +11,24 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
extension Amiibo {
|
||||
/// A model that represents a game related to an amiibo item.
|
||||
public struct Game: Sendable {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A list of identifiers.
|
||||
public let identifiers: [String]
|
||||
|
||||
/// A name.
|
||||
public let name: String
|
||||
|
||||
/// A list of amiibo usages, if any.
|
||||
public let usages: [Usage]?
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this model from a given payload.
|
||||
/// - Parameter payload: A payload that contains the values for the model.
|
||||
init(_ payload: Components.Schemas.AmiiboGame) {
|
||||
self.identifiers = payload.gameID
|
||||
self.name = payload.gameName
|
||||
+16
-2
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -11,16 +11,30 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
extension Amiibo {
|
||||
/// A model that represents a collection of `WiiU`, `3DS`, and `Switch` games related to an amiibo item.
|
||||
public struct Platform: Sendable {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A list of `Switch` games related to an amiibo item.
|
||||
public let `switch`: [Game]
|
||||
|
||||
/// A list of `3DS` games related to an amiibo item.
|
||||
public let threeDS: [Game]
|
||||
|
||||
/// A list of `WiiU` games related to an amiibo item.
|
||||
public let wiiU: [Game]
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
/// Initializes this model.
|
||||
///
|
||||
/// > important: In case no data is provided, then an instance of this model is not created.
|
||||
///
|
||||
/// - Parameters:
|
||||
/// - switch: A list of `Switch` games related to an amiibo item, if any.
|
||||
/// - threeDS: A list of `3DS` games related to an amiibo item, if any.
|
||||
/// - wiiU: A list of `WiiU` games related to an amiibo item, if any.
|
||||
init?(
|
||||
_ `switch`: [Components.Schemas.AmiiboGame]?,
|
||||
_ threeDS: [Components.Schemas.AmiiboGame]?,
|
||||
+14
-4
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -13,17 +13,27 @@
|
||||
import Foundation
|
||||
|
||||
extension Amiibo {
|
||||
/// A model that represents a collection of release dates related to an amiibo item.
|
||||
public struct Release: Sendable {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A release date for North America, if any.
|
||||
public let america: Date?
|
||||
|
||||
/// A release date for Australia, if any.
|
||||
public let australia: Date?
|
||||
|
||||
/// A release date for Europe, if any.
|
||||
public let europe: Date?
|
||||
|
||||
/// A release date for Japan, if any.
|
||||
public let japan: Date?
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this model from a given payload.
|
||||
/// - Parameter payload: A payload that contains the values for the model.
|
||||
init(_ payload: Components.Schemas.AmiiboRelease) {
|
||||
self.america = payload.na
|
||||
self.australia = payload.au
|
||||
+10
-4
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -11,15 +11,21 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
extension Amiibo {
|
||||
/// A model that represents the usage of an amiibo item within a certain game.
|
||||
public struct Usage: Sendable {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// An explanation of how to use an amiibo item.
|
||||
public let explanation: String
|
||||
|
||||
/// A flag that indicates whether an amiibo item can save game data in it.
|
||||
public let isWriteable: Bool
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this model from a given payload.
|
||||
/// - Parameter payload: A payload that contains the values for the model.
|
||||
init(_ payload: Components.Schemas.AmiiboUsage) {
|
||||
self.explanation = payload.Usage
|
||||
self.isWriteable = payload.write
|
||||
+10
-4
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -10,14 +10,20 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A model that represents an amiibo series.
|
||||
public struct AmiiboSeries: KeyNameModel {
|
||||
|
||||
// MARK: Properties
|
||||
// TODO: Remove the documentation from the properties of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A key.
|
||||
public let key: String
|
||||
|
||||
/// A name.
|
||||
public let name: String
|
||||
|
||||
// MARK: Initialisers
|
||||
// MARK: Initializers
|
||||
|
||||
init(_ payload: Components.Schemas.Tuple) {
|
||||
self.key = payload.key
|
||||
+11
-5
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -10,14 +10,20 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A model that represents an amiibo type.
|
||||
public struct AmiiboType: KeyNameModel {
|
||||
|
||||
|
||||
// TODO: Remove the documentation from the properties of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
|
||||
/// A key.
|
||||
public let key: String
|
||||
|
||||
/// A name.
|
||||
public let name: String
|
||||
|
||||
// MARK: Initialisers
|
||||
// MARK: Initializers
|
||||
|
||||
init(_ payload: Components.Schemas.Tuple) {
|
||||
self.key = payload.key
|
||||
+11
-5
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -10,14 +10,20 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A model that represents a game character.
|
||||
public struct GameCharacter: KeyNameModel {
|
||||
|
||||
|
||||
// TODO: Remove the documentation from the properties of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
|
||||
/// A key.
|
||||
public let key: String
|
||||
|
||||
/// A name.
|
||||
public let name: String
|
||||
|
||||
// MARK: Initialisers
|
||||
// MARK: Initializers
|
||||
|
||||
init(_ payload: Components.Schemas.Tuple) {
|
||||
self.key = payload.key
|
||||
+11
-5
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -10,14 +10,20 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
/// A model that represents a game series.
|
||||
public struct GameSeries: KeyNameModel {
|
||||
|
||||
|
||||
// TODO: Remove the documentation from the properties of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
|
||||
/// A key.
|
||||
public let key: String
|
||||
|
||||
/// A name.
|
||||
public let name: String
|
||||
|
||||
// MARK: Initialisers
|
||||
// MARK: Initializers
|
||||
|
||||
init(_ payload: Components.Schemas.Tuple) {
|
||||
self.key = payload.key
|
||||
@@ -0,0 +1,92 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
import Foundation
|
||||
|
||||
/// A protocol that defines API clients containing all available endpoints to interact with.
|
||||
public protocol AmiiboClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
#if swift(>=6.0)
|
||||
/// Gets a list of amiibo items based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo items.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getAmiibos(by filter: AmiiboFilter) async throws(AmiiboServiceError) -> [Amiibo]
|
||||
|
||||
/// Gets a list of amiibo series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getAmiiboSeries(by filter: AmiiboSeriesFilter) async throws(AmiiboServiceError) -> [AmiiboSeries]
|
||||
|
||||
/// Gets a list of amiibo types based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo types.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws(AmiiboServiceError) -> [AmiiboType]
|
||||
|
||||
/// Gets a list of game characters based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game characters.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getGameCharacters(by filter: GameCharacterFilter) async throws(AmiiboServiceError) -> [GameCharacter]
|
||||
|
||||
/// Gets a list of game series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getGameSeries(by filter: GameSeriesFilter) async throws(AmiiboServiceError) -> [GameSeries]
|
||||
|
||||
/// Gets the date when the data was last updated.
|
||||
/// - Returns: A last updated date.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getLastUpdated() async throws(AmiiboServiceError) -> Date
|
||||
#else
|
||||
/// Gets a list of amiibo items based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo items.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getAmiibos(by filter: AmiiboFilter) async throws -> [Amiibo]
|
||||
|
||||
/// Gets a list of amiibo series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getAmiiboSeries(by filter: AmiiboSeriesFilter) async throws -> [AmiiboSeries]
|
||||
|
||||
/// Gets a list of amiibo types based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo types.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws -> [AmiiboType]
|
||||
|
||||
/// Gets a list of game characters based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game characters.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getGameCharacters(by filter: GameCharacterFilter) async throws -> [GameCharacter]
|
||||
|
||||
/// Gets a list of game series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getGameSeries(by filter: GameSeriesFilter) async throws -> [GameSeries]
|
||||
|
||||
/// Gets the date when the data was last updated.
|
||||
/// - Returns: A last updated date.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
func getLastUpdated() async throws -> Date
|
||||
#endif
|
||||
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
import Foundation
|
||||
|
||||
/// A type that implements the service that uses a client to make calls.
|
||||
public struct AmiiboService {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A client to interact with the endpoints.
|
||||
private let client: any AmiiboClient
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this service with a specific client type.
|
||||
/// - Parameter client: A client to use to interact with the endpoints.
|
||||
public init(client: some AmiiboClient = AmiiboLiveClient()) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
#if swift(>=6.0)
|
||||
/// Gets a list of amiibo items based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo items.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiibos(
|
||||
_ filter: AmiiboFilter = .init()
|
||||
) async throws(AmiiboServiceError) -> [Amiibo] {
|
||||
try await client.getAmiibos(by: filter)
|
||||
}
|
||||
|
||||
/// Gets a list of amiibo series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiiboSeries(
|
||||
_ filter: AmiiboSeriesFilter = .init()
|
||||
) async throws(AmiiboServiceError) -> [AmiiboSeries] {
|
||||
try await client.getAmiiboSeries(by: filter)
|
||||
}
|
||||
|
||||
/// Gets a list of amiibo types based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo types.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiiboTypes(
|
||||
_ filter: AmiiboTypeFilter = .init()
|
||||
) async throws(AmiiboServiceError) -> [AmiiboType] {
|
||||
try await client.getAmiiboTypes(by: filter)
|
||||
}
|
||||
|
||||
/// Gets a list of game characters based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game characters.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getGameCharacters(
|
||||
_ filter: GameCharacterFilter = .init()
|
||||
) async throws(AmiiboServiceError) -> [GameCharacter] {
|
||||
try await client.getGameCharacters(by: filter)
|
||||
}
|
||||
|
||||
/// Gets a list of game series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getGameSeries(
|
||||
_ filter: GameSeriesFilter = .init()
|
||||
) async throws(AmiiboServiceError) -> [GameSeries] {
|
||||
try await client.getGameSeries(by: filter)
|
||||
}
|
||||
|
||||
/// Gets the date when the data was last updated.
|
||||
/// - Returns: A last updated date.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getLastUpdated() async throws(AmiiboServiceError) -> Date {
|
||||
try await client.getLastUpdated()
|
||||
}
|
||||
#else
|
||||
/// Gets a list of amiibo items based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo items.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiibos(
|
||||
_ filter: AmiiboFilter = .init()
|
||||
) async throws -> [Amiibo] {
|
||||
try await client.getAmiibos(by: filter)
|
||||
}
|
||||
|
||||
/// Gets a list of amiibo series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiiboSeries(
|
||||
_ filter: AmiiboSeriesFilter = .init()
|
||||
) async throws -> [AmiiboSeries] {
|
||||
try await client.getAmiiboSeries(by: filter)
|
||||
}
|
||||
|
||||
/// Gets a list of amiibo types based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered amiibo types.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getAmiiboTypes(
|
||||
_ filter: AmiiboTypeFilter = .init()
|
||||
) async throws -> [AmiiboType] {
|
||||
try await client.getAmiiboTypes(by: filter)
|
||||
}
|
||||
|
||||
/// Gets a list of game characters based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game characters.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getGameCharacters(
|
||||
_ filter: GameCharacterFilter = .init()
|
||||
) async throws -> [GameCharacter] {
|
||||
try await client.getGameCharacters(by: filter)
|
||||
}
|
||||
|
||||
/// Gets a list of game series based on a given filter.
|
||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||
/// - Returns: A list of filtered game series.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getGameSeries(
|
||||
_ filter: GameSeriesFilter = .init()
|
||||
) async throws -> [GameSeries] {
|
||||
try await client.getGameSeries(by: filter)
|
||||
}
|
||||
|
||||
/// Gets the date when the data was last updated.
|
||||
/// - Returns: A last updated date.
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||
public func getLastUpdated() async throws -> Date {
|
||||
try await client.getLastUpdated()
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
+3
-2
@@ -1,8 +1,8 @@
|
||||
# ===----------------------------------------------------------------------===
|
||||
#
|
||||
# This source file is part of the AmiiboAPI open source project
|
||||
# This source file is part of the AmiiboService open source project
|
||||
#
|
||||
# Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
# Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
# Licensed under the EUPL 1.2 or later.
|
||||
#
|
||||
# See LICENSE for license information
|
||||
@@ -13,4 +13,5 @@
|
||||
generate:
|
||||
- types
|
||||
- client
|
||||
namingStrategy: defensive
|
||||
accessModifier: internal
|
||||
@@ -1,8 +1,8 @@
|
||||
# ===----------------------------------------------------------------------===
|
||||
#
|
||||
# This source file is part of the AmiiboAPI open source project
|
||||
# This source file is part of the AmiiboService open source project
|
||||
#
|
||||
# Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
# Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
# Licensed under the EUPL 1.2 or later.
|
||||
#
|
||||
# See LICENSE for license information
|
||||
@@ -1,29 +0,0 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
import OpenAPIURLSession
|
||||
|
||||
extension Client {
|
||||
|
||||
// MARK: Constants
|
||||
|
||||
static var live: Client {
|
||||
get throws {
|
||||
.init(
|
||||
serverURL: try Servers.server1(),
|
||||
configuration: .init(dateTranscoder: ISODateTranscoder()),
|
||||
transport: URLSessionTransport()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
import Foundation
|
||||
|
||||
public protocol APIClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
func getAmiibos(by filter: AmiiboFilter) async throws -> [Amiibo]
|
||||
func getAmiiboSeries(by filter: AmiiboSeriesFilter) async throws -> [AmiiboSeries]
|
||||
func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws -> [AmiiboType]
|
||||
func getGameCharacters(by filter: GameCharacterFilter) async throws -> [GameCharacter]
|
||||
func getGameSeries(by filter: GameSeriesFilter) async throws -> [GameSeries]
|
||||
func getLastUpdated() async throws -> Date
|
||||
|
||||
}
|
||||
@@ -1,248 +0,0 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
import Foundation
|
||||
import OpenAPIRuntime
|
||||
import OpenAPIURLSession
|
||||
|
||||
public struct AmiiboLiveClient {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
private let client: Client
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
public init() throws {
|
||||
self.client = .init(
|
||||
serverURL: try Servers.server1(),
|
||||
configuration: .init(dateTranscoder: ISODateTranscoder()),
|
||||
transport: URLSessionTransport()
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - APIProtocol
|
||||
|
||||
extension AmiiboLiveClient: APIClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
public func getAmiibos(by filter: AmiiboFilter) async throws -> [Amiibo] {
|
||||
let response = try await {
|
||||
do {
|
||||
return try await client.getAmiibos(
|
||||
.init(query: .init(
|
||||
amiiboSeries: filter.series,
|
||||
character: filter.gameCharacter,
|
||||
gameseries: filter.gameSeries,
|
||||
id: filter.identifier,
|
||||
name: filter.name,
|
||||
showgames: filter.showGames,
|
||||
showusage: filter.showUsage,
|
||||
_type: filter.type
|
||||
))
|
||||
)
|
||||
} catch let error as ClientError {
|
||||
guard let _ = error.underlyingError as? DecodingError else {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
|
||||
throw AmiiboServiceError.decoding
|
||||
} catch {
|
||||
throw AmiiboServiceError.unknown
|
||||
}
|
||||
}()
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
public func getAmiiboSeries(by filter: AmiiboSeriesFilter) async throws -> [AmiiboSeries] {
|
||||
let response = try await client.getAmiiboSeries(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: AmiiboSeries.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
public func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws -> [AmiiboType] {
|
||||
let response = try await client.getAmiiboTypes(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: AmiiboType.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
public func getGameCharacters(by filter: GameCharacterFilter) async throws -> [GameCharacter] {
|
||||
let response = try await client.getGameCharacters(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: GameCharacter.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
public func getGameSeries(by filter: GameSeriesFilter) async throws -> [GameSeries] {
|
||||
let response = try await client.getGameSeries(
|
||||
.init(query: .init(
|
||||
key: filter.key,
|
||||
name: filter.name
|
||||
))
|
||||
)
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return map(output, as: GameSeries.self)
|
||||
}
|
||||
|
||||
case .badRequest:
|
||||
throw AmiiboServiceError.badRequest
|
||||
|
||||
case .internalServerError:
|
||||
throw AmiiboServiceError.notAvailable
|
||||
|
||||
case .notFound:
|
||||
throw AmiiboServiceError.notFound
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
public func getLastUpdated() async throws -> Date {
|
||||
let response = try await client.getLastUpdated()
|
||||
|
||||
switch response {
|
||||
case let .ok(ok):
|
||||
switch ok.body {
|
||||
case let .json(output):
|
||||
return output.lastUpdated
|
||||
}
|
||||
|
||||
case let .undocumented(statusCode, _):
|
||||
throw AmiiboServiceError.undocumented(statusCode)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Helpers
|
||||
|
||||
private extension AmiiboLiveClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
func map(_ wrapper: Components.Schemas.AmiiboWrapper) -> [Amiibo] {
|
||||
switch wrapper.amiibo {
|
||||
case let .Amiibo(object):
|
||||
return [.init(object)]
|
||||
|
||||
case let .AmiiboList(list):
|
||||
return list
|
||||
.map { .init($0) }
|
||||
.sorted { $0.identifier < $1.identifier }
|
||||
}
|
||||
}
|
||||
|
||||
func map<Model: KeyNameModel>(
|
||||
_ wrapper: Components.Schemas.TupleWrapper,
|
||||
as: Model.Type
|
||||
) -> [Model] {
|
||||
switch wrapper.amiibo {
|
||||
case let .Tuple(payload):
|
||||
return [.init(payload)]
|
||||
|
||||
case let .TupleList(list):
|
||||
return list
|
||||
.map { .init($0) }
|
||||
.sorted { $0.key < $1.key }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,130 +0,0 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
import Foundation
|
||||
|
||||
public struct AmiiboMockClient {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
private let amiibos: [Amiibo]?
|
||||
private let amiiboSeries: [AmiiboSeries]?
|
||||
private let amiiboTypes: [AmiiboType]?
|
||||
private let error: AmiiboServiceError?
|
||||
private let gameCharacters: [GameCharacter]?
|
||||
private let gameSeries: [GameSeries]?
|
||||
private let lastUpdated: Date?
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
public init(
|
||||
amiibos: [Amiibo]? = nil,
|
||||
amiiboSeries: [AmiiboSeries]? = nil,
|
||||
amiiboTypes: [AmiiboType]? = nil,
|
||||
gameCharacters: [GameCharacter]? = nil,
|
||||
gameSeries: [GameSeries]? = nil,
|
||||
lastUpdated: Date? = nil,
|
||||
error: AmiiboServiceError? = nil
|
||||
) {
|
||||
self.amiibos = amiibos
|
||||
self.amiiboSeries = amiiboSeries
|
||||
self.amiiboTypes = amiiboTypes
|
||||
self.error = error
|
||||
self.gameCharacters = gameCharacters
|
||||
self.gameSeries = gameSeries
|
||||
self.lastUpdated = lastUpdated
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - APIClient
|
||||
|
||||
extension AmiiboMockClient: APIClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
public func getAmiibos(by filter: AmiiboFilter) async throws -> [Amiibo] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiibos else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiibos
|
||||
}
|
||||
|
||||
public func getAmiiboSeries(by filter: AmiiboSeriesFilter) async throws -> [AmiiboSeries] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiiboSeries else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiiboSeries
|
||||
}
|
||||
|
||||
public func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws -> [AmiiboType] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiiboTypes else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiiboTypes
|
||||
}
|
||||
|
||||
public func getGameCharacters(by filter: GameCharacterFilter) async throws -> [GameCharacter] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let gameCharacters else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return gameCharacters
|
||||
}
|
||||
|
||||
public func getGameSeries(by filter: GameSeriesFilter) async throws -> [GameSeries] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let gameSeries else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return gameSeries
|
||||
}
|
||||
|
||||
public func getLastUpdated() async throws -> Date {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let lastUpdated else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return lastUpdated
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Helpers
|
||||
|
||||
private extension AmiiboMockClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
func throwErrorIfExists() throws {
|
||||
if let error {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
public struct AmiiboFilter {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
public let gameCharacter: String?
|
||||
public let gameSeries: String?
|
||||
public let identifier: String?
|
||||
public let name: String?
|
||||
public let series: String?
|
||||
public let showGames: Bool?
|
||||
public let showUsage: Bool?
|
||||
public let type: String?
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
public init(
|
||||
identifier: String? = nil,
|
||||
name: String? = nil,
|
||||
type: String? = nil,
|
||||
series: String? = nil,
|
||||
gameCharacter: String? = nil,
|
||||
gameSeries: String? = nil,
|
||||
showGames: Bool? = nil,
|
||||
showUsage: Bool? = nil
|
||||
) {
|
||||
self.gameCharacter = gameCharacter
|
||||
self.gameSeries = gameSeries
|
||||
self.identifier = identifier
|
||||
self.name = name
|
||||
self.series = series
|
||||
self.showGames = showGames
|
||||
self.showUsage = showUsage
|
||||
self.type = type
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
public struct AmiiboSeriesFilter: KeyNameFilter {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
public let key: String?
|
||||
public let name: String?
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
public init() {
|
||||
self.key = nil
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
public init(key: String) {
|
||||
self.key = key
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
public init(name: String) {
|
||||
self.key = nil
|
||||
self.name = name
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
public struct AmiiboTypeFilter: KeyNameFilter {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
public let key: String?
|
||||
public let name: String?
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
public init() {
|
||||
self.key = nil
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
public init(key: String) {
|
||||
self.key = key
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
public init(name: String) {
|
||||
self.key = nil
|
||||
self.name = name
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
public struct GameCharacterFilter: KeyNameFilter {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
public let key: String?
|
||||
public let name: String?
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
public init() {
|
||||
self.key = nil
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
public init(key: String) {
|
||||
self.key = key
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
public init(name: String) {
|
||||
self.key = nil
|
||||
self.name = name
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
public struct GameSeriesFilter: KeyNameFilter {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
public let key: String?
|
||||
public let name: String?
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
public init() {
|
||||
self.key = nil
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
public init(key: String) {
|
||||
self.key = key
|
||||
self.name = nil
|
||||
}
|
||||
|
||||
public init(name: String) {
|
||||
self.key = nil
|
||||
self.name = name
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
import Foundation
|
||||
|
||||
public struct AmiiboService {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
private let client: any APIClient
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
public init(_ client: any APIClient) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
public func getAmiibos(
|
||||
_ filter: AmiiboFilter = .init()
|
||||
) async throws -> [Amiibo] {
|
||||
try await client.getAmiibos(by: filter)
|
||||
}
|
||||
|
||||
public func getAmiiboSeries(
|
||||
_ filter: AmiiboSeriesFilter = .init()
|
||||
) async throws -> [AmiiboSeries] {
|
||||
try await client.getAmiiboSeries(by: filter)
|
||||
}
|
||||
|
||||
public func getAmiiboTypes(
|
||||
_ filter: AmiiboTypeFilter = .init()
|
||||
) async throws -> [AmiiboType] {
|
||||
try await client.getAmiiboTypes(by: filter)
|
||||
}
|
||||
|
||||
public func getGameCharacters(
|
||||
_ filter: GameCharacterFilter = .init()
|
||||
) async throws -> [GameCharacter] {
|
||||
try await client.getGameCharacters(by: filter)
|
||||
}
|
||||
|
||||
public func getGameSeries(
|
||||
_ filter: GameSeriesFilter = .init()
|
||||
) async throws -> [GameSeries] {
|
||||
try await client.getGameSeries(by: filter)
|
||||
}
|
||||
|
||||
public func getLastUpdated() async throws -> Date {
|
||||
try await client.getLastUpdated()
|
||||
}
|
||||
|
||||
}
|
||||
+1140
-34
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,217 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of AmiiboAPI project authors
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
import AmiiboService
|
||||
import Foundation
|
||||
|
||||
/// A type that implements a mock client, for testing purposes.
|
||||
struct AmiiboMockClient {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
/// A list of amiibo items to return, if any.
|
||||
private let amiibos: [Amiibo]?
|
||||
|
||||
/// A list of amiibo series to return, if any.
|
||||
private let amiiboSeries: [AmiiboSeries]?
|
||||
|
||||
/// A list of amiibo types to return, if any.
|
||||
private let amiiboTypes: [AmiiboType]?
|
||||
|
||||
/// An error to throw, if any.
|
||||
private let error: AmiiboServiceError?
|
||||
|
||||
/// A list of game characters to return, if any.
|
||||
private let gameCharacters: [GameCharacter]?
|
||||
|
||||
/// A list of game series to return, if any.
|
||||
private let gameSeries: [GameSeries]?
|
||||
|
||||
/// A last updated date to return, if any.
|
||||
private let lastUpdated: Date?
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this client.
|
||||
/// - Parameters:
|
||||
/// - amiibos: A list of amiibo items to return, if any.
|
||||
/// - amiiboSeries: A list of amiibo series to return, if any.
|
||||
/// - amiiboTypes: A list of amiibo types to return, if any.
|
||||
/// - gameCharacters: A list of game characters to return, if any.
|
||||
/// - gameSeries: A list of game series to return, if any.
|
||||
/// - lastUpdated: A last updated date to return, if any.
|
||||
/// - error: An error to throw, if any.
|
||||
init(
|
||||
amiibos: [Amiibo]? = nil,
|
||||
amiiboSeries: [AmiiboSeries]? = nil,
|
||||
amiiboTypes: [AmiiboType]? = nil,
|
||||
gameCharacters: [GameCharacter]? = nil,
|
||||
gameSeries: [GameSeries]? = nil,
|
||||
lastUpdated: Date? = nil,
|
||||
error: AmiiboServiceError? = nil
|
||||
) {
|
||||
self.amiibos = amiibos
|
||||
self.amiiboSeries = amiiboSeries
|
||||
self.amiiboTypes = amiiboTypes
|
||||
self.error = error
|
||||
self.gameCharacters = gameCharacters
|
||||
self.gameSeries = gameSeries
|
||||
self.lastUpdated = lastUpdated
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - AmiiboClient
|
||||
|
||||
extension AmiiboMockClient: AmiiboClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
#if swift(>=6.0)
|
||||
func getAmiibos(by filter: AmiiboFilter) async throws(AmiiboServiceError) -> [Amiibo] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiibos else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiibos
|
||||
}
|
||||
|
||||
func getAmiiboSeries(by filter: AmiiboSeriesFilter) async throws(AmiiboServiceError) -> [AmiiboSeries] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiiboSeries else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiiboSeries
|
||||
}
|
||||
|
||||
func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws(AmiiboServiceError) -> [AmiiboType] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiiboTypes else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiiboTypes
|
||||
}
|
||||
|
||||
func getGameCharacters(by filter: GameCharacterFilter) async throws(AmiiboServiceError) -> [GameCharacter] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let gameCharacters else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return gameCharacters
|
||||
}
|
||||
|
||||
func getGameSeries(by filter: GameSeriesFilter) async throws(AmiiboServiceError) -> [GameSeries] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let gameSeries else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return gameSeries
|
||||
}
|
||||
|
||||
func getLastUpdated() async throws(AmiiboServiceError) -> Date {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let lastUpdated else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return lastUpdated
|
||||
}
|
||||
#else
|
||||
func getAmiibos(by filter: AmiiboFilter) async throws -> [Amiibo] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiibos else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiibos
|
||||
}
|
||||
|
||||
func getAmiiboSeries(by filter: AmiiboSeriesFilter) async throws -> [AmiiboSeries] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiiboSeries else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiiboSeries
|
||||
}
|
||||
|
||||
func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws -> [AmiiboType] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiiboTypes else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiiboTypes
|
||||
}
|
||||
|
||||
func getGameCharacters(by filter: GameCharacterFilter) async throws -> [GameCharacter] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let gameCharacters else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return gameCharacters
|
||||
}
|
||||
|
||||
func getGameSeries(by filter: GameSeriesFilter) async throws -> [GameSeries] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let gameSeries else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return gameSeries
|
||||
}
|
||||
|
||||
func getLastUpdated() async throws -> Date {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let lastUpdated else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return lastUpdated
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Helpers
|
||||
|
||||
private extension AmiiboMockClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
/// Throws an error if it has been provided,
|
||||
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
||||
func throwErrorIfExists() throws(AmiiboServiceError) {
|
||||
if let error {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+7
-11
@@ -1,8 +1,8 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the AmiiboAPI open source project
|
||||
// This source file is part of the AmiiboService open source project
|
||||
//
|
||||
// Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Copyright (c) 2024-2025 Röck+Cöde VoF. and the AmiiboAPI project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
@@ -10,17 +10,13 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
protocol KeyNameFilter {
|
||||
import Testing
|
||||
|
||||
extension Tag {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
var key: String? { get }
|
||||
var name: String? { get }
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
init()
|
||||
init(key: String)
|
||||
init(name: String)
|
||||
/// Tag that indicates tests against a live backend service.
|
||||
@Tag static var live: Self
|
||||
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"kind":"symbol","abstract":[{"type":"text","text":"A list of identifiers."}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/game\/identifiers"]}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers","interfaceLanguage":"swift"},"metadata":{"roleHeading":"Instance Property","title":"identifiers","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifiers","kind":"identifier"},{"text":": [","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"]","kind":"text"}],"externalID":"s:13AmiiboService0A0V4GameV11identifiersSaySSGvp","symbolKind":"property"},"schemaVersion":{"major":0,"patch":0,"minor":3},"sections":[],"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifiers","kind":"identifier"},{"text":": [","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"]","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/identifiers":{"type":"topic","role":"symbol","abstract":[{"type":"text","text":"A list of identifiers."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers","url":"\/documentation\/amiiboservice\/amiibo\/game\/identifiers","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifiers","kind":"identifier"},{"text":": [","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"},{"text":"]","kind":"text"}],"title":"identifiers","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"navigatorTitle":[{"text":"Game","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo\/game","type":"topic","abstract":[{"text":"A model that represents a game related to an amiibo item.","type":"text"}],"title":"Amiibo.Game","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"text":" ","kind":"text"},{"text":"Game","kind":"identifier"}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"sections":[],"metadata":{"modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","externalID":"s:13AmiiboService0A0V4GameV4nameSSvp","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"kind":"text","text":": "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"role":"symbol","title":"name","symbolKind":"property"},"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}],"platforms":["macOS"]}]}],"schemaVersion":{"minor":3,"patch":0,"major":0},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game\/name"],"traits":[{"interfaceLanguage":"swift"}]}],"abstract":[{"type":"text","text":"A name."}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name","interfaceLanguage":"swift"},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/name":{"abstract":[{"type":"text","text":"A name."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"name"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"type":"topic","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game\/name","title":"name"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","type":"topic","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"navigatorTitle":[{"text":"Game","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo\/game","type":"topic","abstract":[{"text":"A model that represents a game related to an amiibo item.","type":"text"}],"title":"Amiibo.Game","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"text":" ","kind":"text"},{"text":"Game","kind":"identifier"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"title":"Amiibo","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Amiibo","kind":"identifier"}],"kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages","interfaceLanguage":"swift"},"kind":"symbol","metadata":{"modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V4GameV6usagesSayAC5UsageVGSgvp","roleHeading":"Instance Property","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"usages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Amiibo","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"text":"Usage","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V5UsageV"},{"kind":"text","text":"]?"}],"symbolKind":"property","title":"usages"},"sections":[],"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"usages","kind":"identifier"},{"text":": [","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V","kind":"typeIdentifier","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","text":"Amiibo"},{"text":".","kind":"text"},{"text":"Usage","kind":"typeIdentifier","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","preciseIdentifier":"s:13AmiiboService0A0V5UsageV"},{"text":"]?","kind":"text"}]}],"kind":"declarations"}],"schemaVersion":{"patch":0,"major":0,"minor":3},"abstract":[{"type":"text","text":"A list of amiibo usages, if any."}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/game\/usages"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"type":"topic","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"role":"symbol","abstract":[{"type":"text","text":"A model that represents an amiibo item."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","url":"\/documentation\/amiiboservice\/amiibo","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Amiibo","kind":"identifier"}],"title":"Amiibo","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"type":"topic","navigatorTitle":[{"text":"Game","kind":"identifier"}],"abstract":[{"text":"A model that represents a game related to an amiibo item.","type":"text"}],"title":"Amiibo.Game","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Game","kind":"identifier"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Usage"}],"abstract":[{"type":"text","text":"A model that represents the usage of an amiibo item within a certain game."}],"title":"Amiibo.Usage","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"inlineContent":[{"text":"Amiibo API","type":"text"}],"type":"strong"},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/usages":{"type":"topic","abstract":[{"text":"A list of amiibo usages, if any.","type":"text"}],"title":"usages","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"usages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Amiibo","preciseIdentifier":"s:13AmiiboService0A0V"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Usage","preciseIdentifier":"s:13AmiiboService0A0V5UsageV"},{"kind":"text","text":"]?"}],"role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages","url":"\/documentation\/amiiboservice\/amiibo\/game\/usages"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"abstract":[{"text":"A game character.","type":"text"}],"kind":"symbol","variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/gamecharacter"],"traits":[{"interfaceLanguage":"swift"}]}],"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter","interfaceLanguage":"swift"},"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"symbolKind":"property","role":"symbol","roleHeading":"Instance Property","title":"gameCharacter","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V13gameCharacterSSvp"},"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}]}],"kind":"declarations"}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/gameCharacter":{"abstract":[{"type":"text","text":"A game character."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/gamecharacter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter","role":"symbol","title":"gameCharacter","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}]}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A game series."}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/gameseries"]}],"schemaVersion":{"patch":0,"major":0,"minor":3},"kind":"symbol","metadata":{"externalID":"s:13AmiiboService0A0V10gameSeriesSSvp","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","role":"symbol","title":"gameSeries","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"gameSeries"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}]},"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"gameSeries","kind":"identifier"},{"kind":"text","text":": "},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"languages":["swift"]}],"kind":"declarations"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/gameSeries":{"url":"\/documentation\/amiiboservice\/amiibo\/gameseries","type":"topic","kind":"symbol","title":"gameSeries","abstract":[{"type":"text","text":"A game series."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"gameSeries"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","schemaVersion":{"minor":3,"patch":0,"major":0},"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","interfaceLanguage":"swift"},"abstract":[{"text":"The first 8 hexadecimal characters of an identifier.","type":"text"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"head","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}]}]}],"metadata":{"title":"head","role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V4headSSvp","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"head","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"symbolKind":"property"},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/head"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/head":{"title":"head","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","url":"\/documentation\/amiiboservice\/amiibo\/head","abstract":[{"type":"text","text":"The first 8 hexadecimal characters of an identifier."}],"role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}]}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"abstract":[{"type":"text","text":"An identifier."}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/identifier"]}],"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier"},"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"fragments":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifier","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"symbolKind":"property","role":"symbol","roleHeading":"Instance Property","title":"identifier","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V10identifierSSvp"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifier","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":" { ","kind":"text"},{"text":"get","kind":"keyword"},{"text":" }","kind":"text"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/identifier":{"title":"identifier","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier","url":"\/documentation\/amiiboservice\/amiibo\/identifier","abstract":[{"type":"text","text":"An identifier."}],"role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"abstract":[{"text":"An image link.","type":"text"}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/image"]}],"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image"},"schemaVersion":{"patch":0,"major":0,"minor":3},"metadata":{"externalID":"s:13AmiiboService0A0V5imageSSvp","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","role":"symbol","title":"image","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"image","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}]},"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"text":"image","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}]}],"kind":"declarations"}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/image":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"image","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"abstract":[{"text":"An image link.","type":"text"}],"kind":"symbol","type":"topic","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","url":"\/documentation\/amiiboservice\/amiibo\/image","title":"image"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"schemaVersion":{"major":0,"minor":3,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL"},"abstract":[{"text":"A URL related to an image link, if any.","type":"text"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/imageurl"]}],"sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"metadata":{"fragments":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"imageURL","kind":"identifier"},{"kind":"text","text":": "},{"text":"URL","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation3URLV"},{"kind":"text","text":"?"}],"symbolKind":"property","role":"symbol","roleHeading":"Instance Property","title":"imageURL","externalID":"s:13AmiiboService0A0V8imageURL10Foundation0D0VSgvp","modules":[{"name":"AmiiboService"}]},"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"text":"imageURL","kind":"identifier"},{"text":": ","kind":"text"},{"text":"URL","preciseIdentifier":"s:10Foundation3URLV","kind":"typeIdentifier"},{"text":"? { ","kind":"text"},{"kind":"keyword","text":"get"},{"text":" }","kind":"text"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"inlineContent":[{"text":"Amiibo API","type":"text"}],"type":"strong"},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"type":"topic","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"role":"symbol","abstract":[{"type":"text","text":"A model that represents an amiibo item."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","url":"\/documentation\/amiiboservice\/amiibo","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Amiibo","kind":"identifier"}],"title":"Amiibo","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/imageURL":{"abstract":[{"type":"text","text":"A URL related to an image link, if any."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/imageurl","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL","role":"symbol","title":"imageURL","kind":"symbol","fragments":[{"kind":"keyword","text":"var"},{"text":" ","kind":"text"},{"kind":"identifier","text":"imageURL"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation3URLV","kind":"typeIdentifier","text":"URL"},{"kind":"text","text":"?"}]}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"abstract":[{"type":"text","text":"An amiibo name."}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/name"]}],"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name","interfaceLanguage":"swift"},"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"symbolKind":"property","role":"symbol","roleHeading":"Instance Property","title":"name","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V4nameSSvp"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/name":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"abstract":[{"type":"text","text":"An amiibo name."}],"kind":"symbol","type":"topic","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name","url":"\/documentation\/amiiboservice\/amiibo\/name","title":"name"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"abstract":[{"type":"text","text":"A game platform type, if any."}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.property"]}],"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","interfaceLanguage":"swift"},"schemaVersion":{"patch":0,"major":0,"minor":3},"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Amiibo","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"text":"Platform","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"text":"?","kind":"text"}],"symbolKind":"property","role":"symbol","roleHeading":"Instance Property","externalID":"s:13AmiiboService0A0V8platformAC8PlatformVSgvp","modules":[{"name":"AmiiboService"}],"title":"platform"},"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","preciseIdentifier":"s:13AmiiboService0A0V","text":"Amiibo","kind":"typeIdentifier"},{"text":".","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV","text":"Platform","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"languages":["swift"]}],"kind":"declarations"}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/platform-swift.property":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Amiibo","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"text":"Platform","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"text":"?","kind":"text"}],"abstract":[{"text":"A game platform type, if any.","type":"text"}],"kind":"symbol","type":"topic","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.property","title":"platform"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"abstract":[{"text":"A model that represents a collection of ","type":"text"},{"code":"WiiU","type":"codeVoice"},{"type":"text","text":", "},{"type":"codeVoice","code":"3DS"},{"text":", and ","type":"text"},{"type":"codeVoice","code":"Switch"},{"type":"text","text":" games related to an amiibo item."}],"navigatorTitle":[{"kind":"identifier","text":"Platform"}],"url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","role":"symbol","title":"Amiibo.Platform","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"Platform"}]}}}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property"},"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"release","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V","kind":"typeIdentifier","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","text":"Amiibo"},{"text":".","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","text":"Release","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV"}],"languages":["swift"],"platforms":["macOS"]}],"kind":"declarations"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.property"]}],"abstract":[{"type":"text","text":"A release date."}],"metadata":{"modules":[{"name":"AmiiboService"}],"title":"release","role":"symbol","roleHeading":"Instance Property","symbolKind":"property","externalID":"s:13AmiiboService0A0V7releaseAC7ReleaseVvp","fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"release"},{"kind":"text","text":": "},{"preciseIdentifier":"s:13AmiiboService0A0V","kind":"typeIdentifier","text":"Amiibo"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Release","preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV"}]},"sections":[],"schemaVersion":{"patch":0,"minor":3,"major":0},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"title":"Amiibo","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Amiibo","kind":"identifier"}],"kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"inlineContent":[{"text":"Amiibo API","type":"text"}],"type":"strong"},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/release-swift.property":{"abstract":[{"type":"text","text":"A release date."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.property","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property","role":"symbol","title":"release","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"release","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Amiibo","preciseIdentifier":"s:13AmiiboService0A0V","kind":"typeIdentifier"},{"text":".","kind":"text"},{"text":"Release","preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV","kind":"typeIdentifier"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Release"}],"kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"kind":"identifier","text":"Release"}],"type":"topic"}}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","schemaVersion":{"minor":3,"patch":0,"major":0},"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A release date for North America, if any."}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"america"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["macOS"]}]}],"metadata":{"roleHeading":"Instance Property","title":"america","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"america","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"symbolKind":"property","externalID":"s:13AmiiboService0A0V7ReleaseV7america10Foundation4DateVSgvp"},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/america":{"title":"america","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america","abstract":[{"type":"text","text":"A release date for North America, if any."}],"role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"america"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"kind":"text","text":"?"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Release"}],"kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"kind":"identifier","text":"Release"}],"type":"topic"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"metadata":{"modules":[{"name":"AmiiboService"}],"title":"australia","role":"symbol","roleHeading":"Instance Property","symbolKind":"property","externalID":"s:13AmiiboService0A0V7ReleaseV9australia10Foundation4DateVSgvp","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"australia"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}]},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"sections":[],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia"]}],"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"australia","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier"},{"kind":"text","text":"?"}],"platforms":["macOS"]}]}],"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia","interfaceLanguage":"swift"},"abstract":[{"text":"A release date for Australia, if any.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/australia":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia","type":"topic","role":"symbol","abstract":[{"type":"text","text":"A release date for Australia, if any."}],"fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"australia","kind":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia","kind":"symbol","title":"australia"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Release"}],"kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"kind":"identifier","text":"Release"}],"type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"title":"Amiibo","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Amiibo","kind":"identifier"}],"kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"inlineContent":[{"text":"Amiibo API","type":"text"}],"type":"strong"},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","schemaVersion":{"major":0,"patch":0,"minor":3},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe","interfaceLanguage":"swift"},"sections":[],"abstract":[{"type":"text","text":"A release date for Europe, if any."}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"europe"},{"kind":"text","text":": "},{"preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier","text":"Date"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["macOS"]}]}],"metadata":{"title":"europe","role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V7ReleaseV6europe10Foundation4DateVSgvp","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"europe"},{"kind":"text","text":": "},{"preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier","text":"Date"},{"kind":"text","text":"?"}],"symbolKind":"property"},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/europe"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Release"}],"kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"kind":"identifier","text":"Release"}],"type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/europe":{"title":"europe","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/europe","abstract":[{"type":"text","text":"A release date for Europe, if any."}],"role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"europe"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"kind":"text","text":"?"}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"metadata":{"modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","role":"symbol","externalID":"s:13AmiiboService0A0V7ReleaseV5japan10Foundation4DateVSgvp","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"japan","kind":"identifier"},{"kind":"text","text":": "},{"preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier","text":"Date"},{"kind":"text","text":"?"}],"symbolKind":"property","title":"japan"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"kind":"symbol","sections":[],"abstract":[{"text":"A release date for Japan, if any.","type":"text"}],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"text":"japan","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"text":"?","kind":"text"}]}]}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan"},"schemaVersion":{"minor":3,"patch":0,"major":0},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/japan"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"title":"Amiibo","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Amiibo","kind":"identifier"}],"kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/japan":{"type":"topic","abstract":[{"type":"text","text":"A release date for Japan, if any."}],"title":"japan","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"japan","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/japan","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"title":"Amiibo.Release","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Release"}],"kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","navigatorTitle":[{"kind":"identifier","text":"Release"}],"type":"topic"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","schemaVersion":{"major":0,"patch":0,"minor":3},"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series","interfaceLanguage":"swift"},"abstract":[{"text":"An amiibo series.","type":"text"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"series","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"platforms":["macOS"],"languages":["swift"]}]}],"metadata":{"title":"series","role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V6seriesSSvp","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"series","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"symbolKind":"property"},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/series"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/series":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"abstract":[{"type":"text","text":"An amiibo series."}],"kind":"symbol","type":"topic","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series","url":"\/documentation\/amiiboservice\/amiibo\/series","title":"series"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"patch":0,"minor":3,"major":0},"sections":[],"abstract":[{"type":"text","text":"The last 8 hexadecimal characters of an identifier."}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","interfaceLanguage":"swift"},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"languages":["swift"],"platforms":["macOS"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/tail"]}],"metadata":{"roleHeading":"Instance Property","title":"tail","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"tail","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"externalID":"s:13AmiiboService0A0V4tailSSvp","symbolKind":"property"},"kind":"symbol","references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/tail":{"abstract":[{"text":"The last 8 hexadecimal characters of an identifier.","type":"text"}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/tail","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","role":"symbol","title":"tail","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"tail","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"text":"An amiibo type.","type":"text"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/type"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"sections":[],"metadata":{"externalID":"s:13AmiiboService0A0V4typeSSvp","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","role":"symbol","title":"type","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"text":"type","kind":"identifier"},{"kind":"text","text":": "},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}]},"kind":"symbol","schemaVersion":{"minor":3,"patch":0,"major":0},"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"languages":["swift"]}],"kind":"declarations"}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/type":{"title":"type","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type","url":"\/documentation\/amiiboservice\/amiibo\/type","abstract":[{"type":"text","text":"An amiibo type."}],"role":"symbol","type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"}}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"kind":"symbol","abstract":[{"text":"An explanation of how to use an amiibo item.","type":"text"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/explanation"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation"},"metadata":{"roleHeading":"Instance Property","title":"explanation","modules":[{"name":"AmiiboService"}],"role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"explanation","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"externalID":"s:13AmiiboService0A0V5UsageV11explanationSSvp","symbolKind":"property"},"schemaVersion":{"patch":0,"major":0,"minor":3},"sections":[],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"explanation","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/explanation":{"url":"\/documentation\/amiiboservice\/amiibo\/usage\/explanation","kind":"symbol","type":"topic","title":"explanation","abstract":[{"text":"An explanation of how to use an amiibo item.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"explanation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Usage"}],"abstract":[{"type":"text","text":"A model that represents the usage of an amiibo item within a certain game."}],"title":"Amiibo.Usage","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"type":"text","text":"A flag that indicates whether an amiibo item can save game data in it."}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/iswriteable"]}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"sections":[],"metadata":{"externalID":"s:13AmiiboService0A0V5UsageV11isWriteableSbvp","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","role":"symbol","title":"isWriteable","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"isWriteable","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","kind":"typeIdentifier","text":"Bool"}]},"kind":"symbol","schemaVersion":{"patch":0,"major":0,"minor":3},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"isWriteable","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}],"platforms":["macOS"],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo","abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/isWriteable":{"title":"isWriteable","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable","url":"\/documentation\/amiiboservice\/amiibo\/usage\/iswriteable","abstract":[{"type":"text","text":"A flag that indicates whether an amiibo item can save game data in it."}],"role":"symbol","type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"isWriteable","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Usage"}],"abstract":[{"type":"text","text":"A model that represents the usage of an amiibo item within a certain game."}],"title":"Amiibo.Usage","kind":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage"}}}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","schemaVersion":{"minor":3,"patch":0,"major":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameCharacter"},"sections":[],"abstract":[{"type":"text","text":"A game character to return, if any."}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameCharacter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}]}],"kind":"declarations"}],"metadata":{"title":"gameCharacter","role":"symbol","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","externalID":"s:13AmiiboService0A6FilterV13gameCharacterSSSgvp","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameCharacter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}],"symbolKind":"property"},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/gamecharacter"]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"abstract":[{"text":"A type that contains values to fine-tune a response when requesting amiibo items.","type":"text"}],"title":"AmiiboFilter","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/gameCharacter":{"title":"gameCharacter","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameCharacter","url":"\/documentation\/amiiboservice\/amiibofilter\/gamecharacter","abstract":[{"type":"text","text":"A game character to return, if any."}],"role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?","kind":"text"}]}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","schemaVersion":{"minor":3,"patch":0,"major":0},"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameSeries","interfaceLanguage":"swift"},"abstract":[{"text":"A game series to return, if any.","type":"text"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameSeries","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"?","kind":"text"}]}]}],"metadata":{"title":"gameSeries","role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A6FilterV10gameSeriesSSSgvp","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameSeries","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"?","kind":"text"}],"symbolKind":"property"},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/gameseries"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"abstract":[{"text":"A type that contains values to fine-tune a response when requesting amiibo items.","type":"text"}],"title":"AmiiboFilter","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/gameSeries":{"title":"gameSeries","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameSeries","url":"\/documentation\/amiiboservice\/amiibofilter\/gameseries","abstract":[{"type":"text","text":"A game series to return, if any."}],"role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}]}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"abstract":[{"type":"text","text":"An amiibo identifier to return, if any."}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/identifier"]}],"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/identifier","interfaceLanguage":"swift"},"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifier","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"symbolKind":"property","role":"symbol","roleHeading":"Instance Property","title":"identifier","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A6FilterV10identifierSSSgvp"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifier","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"abstract":[{"text":"A type that contains values to fine-tune a response when requesting amiibo items.","type":"text"}],"title":"AmiiboFilter","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/identifier":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"An amiibo identifier to return, if any."}],"kind":"symbol","type":"topic","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/identifier","url":"\/documentation\/amiiboservice\/amiibofilter\/identifier","title":"identifier"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"}}}
|
||||
+1
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","schemaVersion":{"major":0,"patch":0,"minor":3},"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/name","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"An amiibo name to return, if any."}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}]}],"metadata":{"title":"name","role":"symbol","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","externalID":"s:13AmiiboService0A6FilterV4nameSSSgvp","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"symbolKind":"property"},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/name"]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/name":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}],"abstract":[{"type":"text","text":"An amiibo name to return, if any."}],"kind":"symbol","type":"topic","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/name","url":"\/documentation\/amiiboservice\/amiibofilter\/name","title":"name"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"abstract":[{"text":"A type that contains values to fine-tune a response when requesting amiibo items.","type":"text"}],"title":"AmiiboFilter","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"type":"text","text":"An amiibo series to return, if any."}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/series"]}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/series"},"sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"metadata":{"externalID":"s:13AmiiboService0A6FilterV6seriesSSSgvp","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","role":"symbol","title":"series","symbolKind":"property","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"},{"kind":"text","text":"?"}]},"schemaVersion":{"patch":0,"major":0,"minor":3},"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/series":{"abstract":[{"type":"text","text":"An amiibo series to return, if any."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibofilter\/series","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/series","role":"symbol","title":"series","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"abstract":[{"text":"A type that contains values to fine-tune a response when requesting amiibo items.","type":"text"}],"title":"AmiiboFilter","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"type":"text","text":"A flag indicating whether to include games in the response, if any."}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/showgames"]}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showGames","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"sections":[],"metadata":{"externalID":"s:13AmiiboService0A6FilterV9showGamesSbSgvp","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","role":"symbol","title":"showGames","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"showGames","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"},{"text":"?","kind":"text"}]},"schemaVersion":{"major":0,"minor":3,"patch":0},"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"showGames","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"},{"text":"?","kind":"text"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/showGames":{"abstract":[{"type":"text","text":"A flag indicating whether to include games in the response, if any."}],"url":"\/documentation\/amiiboservice\/amiibofilter\/showgames","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showGames","role":"symbol","title":"showGames","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"showGames"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"kind":"text","text":"?"}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"abstract":[{"text":"A type that contains values to fine-tune a response when requesting amiibo items.","type":"text"}],"title":"AmiiboFilter","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"abstract":[{"type":"text","text":"A flag indicating whether to include amiibo usages in games in the response, if any."}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/showusage"]}],"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage"},"schemaVersion":{"minor":3,"patch":0,"major":0},"metadata":{"externalID":"s:13AmiiboService0A6FilterV9showUsageSbSgvp","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","role":"symbol","title":"showUsage","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"showUsage","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"},{"text":"?","kind":"text"}]},"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"showUsage","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"},{"text":"?","kind":"text"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/showUsage":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"showUsage","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"abstract":[{"type":"text","text":"A flag indicating whether to include amiibo usages in games in the response, if any."}],"kind":"symbol","type":"topic","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage","url":"\/documentation\/amiiboservice\/amiibofilter\/showusage","title":"showUsage"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"abstract":[{"text":"A type that contains values to fine-tune a response when requesting amiibo items.","type":"text"}],"title":"AmiiboFilter","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"text":"An amiibo type to return, if any.","type":"text"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/type"]}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/type","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"sections":[],"metadata":{"externalID":"s:13AmiiboService0A6FilterV4typeSSSgvp","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","role":"symbol","title":"type","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"},{"text":"?","kind":"text"}]},"kind":"symbol","schemaVersion":{"major":0,"patch":0,"minor":3},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/type":{"abstract":[{"text":"An amiibo type to return, if any.","type":"text"}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibofilter\/type","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/type","role":"symbol","title":"type","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"},{"kind":"text","text":"?"}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"abstract":[{"text":"A type that contains values to fine-tune a response when requesting amiibo items.","type":"text"}],"title":"AmiiboFilter","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboFilter"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboliveclient"]}],"topicSections":[{"title":"Initializers","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/init()"],"generated":true,"anchor":"Initializers"},{"title":"Default Implementations","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/AmiiboClient-Implementations"],"generated":true,"anchor":"Default-Implementations"}],"seeAlsoSections":[{"title":"Clients","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"],"generated":true,"anchor":"Clients"}],"kind":"symbol","schemaVersion":{"major":0,"minor":3,"patch":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient","interfaceLanguage":"swift"},"sections":[],"abstract":[{"text":"A type that implements a live client to the online service.","type":"text"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboLiveClient"}]}]}],"metadata":{"title":"AmiiboLiveClient","navigatorTitle":[{"kind":"identifier","text":"AmiiboLiveClient"}],"role":"symbol","modules":[{"name":"AmiiboService"}],"roleHeading":"Structure","externalID":"s:13AmiiboService0A10LiveClientV","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboLiveClient"}],"symbolKind":"struct"},"relationshipsSections":[{"title":"Conforms To","kind":"relationships","type":"conformsTo","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient","doc:\/\/AmiiboService\/s8CopyableP"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient/init()":{"url":"\/documentation\/amiiboservice\/amiiboliveclient\/init()","kind":"symbol","type":"topic","abstract":[{"type":"text","text":"Initializes this client."}],"title":"init()","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/init()","role":"symbol","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"()"}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient/AmiiboClient-Implementations":{"title":"AmiiboClient Implementations","kind":"article","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/AmiiboClient-Implementations","url":"\/documentation\/amiiboservice\/amiiboliveclient\/amiiboclient-implementations","abstract":[],"role":"collectionGroup","type":"topic"},"doc://AmiiboService/s8CopyableP":{"identifier":"doc:\/\/AmiiboService\/s8CopyableP","title":"Swift.Copyable","type":"unresolvable"},"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient","kind":"symbol","role":"symbol","type":"topic","url":"\/documentation\/amiiboservice\/amiiboliveclient","title":"AmiiboLiveClient","abstract":[{"type":"text","text":"A type that implements a live client to the online service."}],"navigatorTitle":[{"kind":"identifier","text":"AmiiboLiveClient"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboLiveClient"}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"text":" backend service.","type":"text"}],"url":"\/documentation\/amiiboservice","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","role":"collection","title":"AmiiboService","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboClient":{"type":"topic","navigatorTitle":[{"text":"AmiiboClient","kind":"identifier"}],"role":"symbol","abstract":[{"type":"text","text":"A protocol that defines API clients containing all available endpoints to interact with."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient","url":"\/documentation\/amiiboservice\/amiiboclient","fragments":[{"text":"protocol","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboClient","kind":"identifier"}],"title":"AmiiboClient","kind":"symbol"}}}
|
||||
+1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user