Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 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
|
||||
@@ -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,34 @@
|
||||
# Amiibo API
|
||||
# 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,82 @@
|
||||
# ``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``
|
||||
- ``AmiiboMockClient``
|
||||
|
||||
### 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,55 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// 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.
|
||||
protocol APIClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
/// 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
|
||||
|
||||
}
|
||||
@@ -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,326 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// 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: - APIClient
|
||||
// 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: APIClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
/// 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)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 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 }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// 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 a mock client, for testing purposes.
|
||||
public 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.
|
||||
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
|
||||
// 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 AmiiboMockClient: APIClient {
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
/// 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] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiibos else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiibos
|
||||
}
|
||||
|
||||
/// 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] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiiboSeries else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return 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.
|
||||
public func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws(AmiiboServiceError) -> [AmiiboType] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let amiiboTypes else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return amiiboTypes
|
||||
}
|
||||
|
||||
/// 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] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let gameCharacters else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return gameCharacters
|
||||
}
|
||||
|
||||
/// 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] {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let gameSeries else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return 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.
|
||||
public func getLastUpdated() async throws(AmiiboServiceError) -> Date {
|
||||
try throwErrorIfExists()
|
||||
|
||||
guard let lastUpdated else {
|
||||
throw AmiiboServiceError.notFound
|
||||
}
|
||||
|
||||
return lastUpdated
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 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
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// 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 representation of the types of client that a ``AmiiboService`` service can utilize.
|
||||
///
|
||||
/// > important: This enumeration has been defined as a way to avoid exposing the `APIClient` protocol outside the boundaries of this library.
|
||||
public enum AmiiboClient {
|
||||
/// A live Amiibo client to interact with the online service.
|
||||
case live(AmiiboLiveClient = .init())
|
||||
///A mock Amiibo client, for testing purposes.
|
||||
case mock(AmiiboMockClient)
|
||||
}
|
||||
+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,93 @@
|
||||
//===----------------------------------------------------------------------===
|
||||
//
|
||||
// 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 APIClient
|
||||
|
||||
// MARK: Initializers
|
||||
|
||||
/// Initializes this service with a specific client type.
|
||||
/// - Parameter client: A representation of a client to use to interact with the endpoints.
|
||||
public init(_ client: AmiiboClient) {
|
||||
self.client = switch client {
|
||||
case let .mock(mockClient): mockClient
|
||||
case let .live(liveClient): liveClient
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: Functions
|
||||
|
||||
/// 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()
|
||||
}
|
||||
|
||||
}
|
||||
+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,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
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
protocol KeyNameFilter {
|
||||
|
||||
// MARK: Properties
|
||||
|
||||
var key: String? { get }
|
||||
var name: String? { get }
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
init()
|
||||
init(key: String)
|
||||
init(name: String)
|
||||
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
}
|
||||
+193
-193
@@ -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,10 +10,11 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===
|
||||
|
||||
import AmiiboAPI
|
||||
import AmiiboService
|
||||
import Foundation
|
||||
import Testing
|
||||
|
||||
@Suite("Live service")
|
||||
struct AmiiboServiceLiveTests {
|
||||
|
||||
// MARK: Properties
|
||||
@@ -22,31 +23,29 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// MARK: Initialisers
|
||||
|
||||
init() throws {
|
||||
let client = try AmiiboLiveClient()
|
||||
|
||||
self.service = .init(client)
|
||||
init() {
|
||||
self.service = .init(.live())
|
||||
}
|
||||
|
||||
// MARK: Functions tests
|
||||
|
||||
@Test("Get Amiibo items")
|
||||
func getAmiibos() async throws {
|
||||
@Test
|
||||
func `get Amiibo items`() async throws {
|
||||
// GIVEN
|
||||
// WHEN
|
||||
let amiibos = try await service.getAmiibos()
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 853)
|
||||
#expect(amiibos.count == 885)
|
||||
#expect(amiibos.first?.identifier == "0000000000000002")
|
||||
#expect(amiibos.first?.platform == nil)
|
||||
#expect(amiibos.last?.identifier == "3f000000042e0002")
|
||||
#expect(amiibos.last?.platform == nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an existing identifier")
|
||||
func getAmiibos_byExistingIdentifier() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an existing identifier`() async throws {
|
||||
// GIVEN
|
||||
let identifier = "0000000000000002"
|
||||
|
||||
@@ -60,8 +59,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.first?.platform == nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by a non-existing identifier")
|
||||
func getAmiibos_byNonExistingIdentifier() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by a non-existing identifier`() async throws {
|
||||
// GIVEN
|
||||
let identifier = "0000000000000000"
|
||||
|
||||
@@ -72,8 +71,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an incomplete identifier")
|
||||
func getAmiibos_byIncompleteIdentifier() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an incomplete identifier`() async throws {
|
||||
// GIVEN
|
||||
let identifier = "0000000"
|
||||
|
||||
@@ -84,8 +83,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an empty identifier")
|
||||
func getAmiibos_byEmptyIdentifier() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an empty identifier`() async throws {
|
||||
// GIVEN
|
||||
let identifier = ""
|
||||
|
||||
@@ -96,8 +95,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an existing name")
|
||||
func getAmiibos_byExistingName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an existing name`() async throws {
|
||||
// GIVEN
|
||||
let name = "zelda"
|
||||
|
||||
@@ -117,8 +116,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(nameLast.contains(name))
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by a non-existing name")
|
||||
func getAmiibos_byNonExistingName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by a non-existing name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Something"
|
||||
|
||||
@@ -129,8 +128,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an incomplete name")
|
||||
func getAmiibos_byIncompleteName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an incomplete name`() async throws {
|
||||
// GIVEN
|
||||
let name = "zel"
|
||||
|
||||
@@ -150,8 +149,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(nameLast.contains(name))
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an empty name")
|
||||
func getAmiibos_byEmptyName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an empty name`() async throws {
|
||||
// GIVEN
|
||||
let name = ""
|
||||
|
||||
@@ -160,11 +159,11 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 853)
|
||||
#expect(amiibos.count == 885)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an existing type key")
|
||||
func getAmiibos_byExistingTypeKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an existing type key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x00"
|
||||
|
||||
@@ -173,15 +172,15 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 227)
|
||||
#expect(amiibos.count == 235)
|
||||
#expect(amiibos.first?.type == "Figure")
|
||||
#expect(amiibos.first?.platform == nil)
|
||||
#expect(amiibos.last?.type == "Figure")
|
||||
#expect(amiibos.last?.platform == nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an existing type name")
|
||||
func getAmiibos_byExistingTypeName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an existing type name`() async throws {
|
||||
// GIVEN
|
||||
let name = "figure"
|
||||
|
||||
@@ -190,15 +189,15 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 227)
|
||||
#expect(amiibos.count == 235)
|
||||
#expect(amiibos.first?.type == "Figure")
|
||||
#expect(amiibos.first?.platform == nil)
|
||||
#expect(amiibos.last?.type == "Figure")
|
||||
#expect(amiibos.last?.platform == nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by a non-existing type key")
|
||||
func getAmiibos_byNonExistingTypeKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by a non-existing type key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x0f"
|
||||
|
||||
@@ -209,8 +208,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by a non-existing type name")
|
||||
func getAmiibos_byNonExistingTypeName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by a non-existing type name`() async throws {
|
||||
// GIVEN
|
||||
let name = "something"
|
||||
|
||||
@@ -221,8 +220,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an incomplete type key")
|
||||
func getAmiibos_byIncompleteTypeKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an incomplete type key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x"
|
||||
|
||||
@@ -233,8 +232,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an incomplete type name")
|
||||
func getAmiibos_byIncompleteTypeName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an incomplete type name`() async throws {
|
||||
// GIVEN
|
||||
let name = "fig"
|
||||
|
||||
@@ -245,8 +244,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an empty type key")
|
||||
func getAmiibos_byEmptyTypeKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an empty type key`() async throws {
|
||||
// GIVEN
|
||||
let key = ""
|
||||
|
||||
@@ -257,8 +256,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an empty type name")
|
||||
func getAmiibos_byEmptyTypeName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an empty type name`() async throws {
|
||||
// GIVEN
|
||||
let name = ""
|
||||
|
||||
@@ -269,8 +268,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an existing series key")
|
||||
func getAmiibos_byExistingSeriesKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an existing series key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x00"
|
||||
|
||||
@@ -286,8 +285,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.last?.platform == nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an existing series name")
|
||||
func getAmiibos_byExistingSeriesName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an existing series name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Legend Of Zelda"
|
||||
|
||||
@@ -296,15 +295,15 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 22)
|
||||
#expect(amiibos.count == 26)
|
||||
#expect(amiibos.first?.series == name)
|
||||
#expect(amiibos.first?.platform == nil)
|
||||
#expect(amiibos.last?.series == name)
|
||||
#expect(amiibos.last?.platform == nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by a non-existing series key")
|
||||
func getAmiibos_byNonExistingSeriesKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by a non-existing series key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0xf9"
|
||||
|
||||
@@ -315,8 +314,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by a non-existing series name")
|
||||
func getAmiibos_byNonExistingSeriesName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by a non-existing series name`() async throws {
|
||||
// GIVEN
|
||||
let name = "something"
|
||||
|
||||
@@ -327,8 +326,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an incomplete series key")
|
||||
func getAmiibos_byIncompleteSeriesKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an incomplete series key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x"
|
||||
|
||||
@@ -339,8 +338,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an incomplete series name")
|
||||
func getAmiibos_byIncompleteSeriesName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an incomplete series name`() async throws {
|
||||
// GIVEN
|
||||
let name = "fig"
|
||||
|
||||
@@ -348,11 +347,12 @@ struct AmiiboServiceLiveTests {
|
||||
let amiibos = try await service.getAmiibos(.init(series: name))
|
||||
|
||||
// THEN
|
||||
#expect(amiibos.isEmpty)
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 25)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an empty series key")
|
||||
func getAmiibos_byEmptySeriesKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an empty series key`() async throws {
|
||||
// GIVEN
|
||||
let key = ""
|
||||
|
||||
@@ -361,11 +361,11 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 853)
|
||||
#expect(amiibos.count == 885)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an empty series name")
|
||||
func getAmiibos_byEmptySeriesName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an empty series name`() async throws {
|
||||
// GIVEN
|
||||
let name = ""
|
||||
|
||||
@@ -374,11 +374,11 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 853)
|
||||
#expect(amiibos.count == 885)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an existing game character key")
|
||||
func getAmiibos_byExistingGameCharacterKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an existing game character key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x00"
|
||||
|
||||
@@ -394,8 +394,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.last?.platform == nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an existing game character name")
|
||||
func getAmiibos_byExistingGameCharacterName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an existing game character name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Zelda"
|
||||
|
||||
@@ -411,8 +411,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.last?.platform == nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by a non-existing game character key")
|
||||
func getAmiibos_byNonExistingGameCharacterKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by a non-existing game character key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0xf9"
|
||||
|
||||
@@ -423,8 +423,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by a non-existing game character name")
|
||||
func getAmiibos_byNonExistingGameCharacterName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by a non-existing game character name`() async throws {
|
||||
// GIVEN
|
||||
let name = "something"
|
||||
|
||||
@@ -435,8 +435,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an incomplete game character key")
|
||||
func getAmiibos_byIncompleteGameCharacterKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an incomplete game character key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x"
|
||||
|
||||
@@ -447,8 +447,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an incomplete game character name")
|
||||
func getAmiibos_byIncompleteGameCharacterName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an incomplete game character name`() async throws {
|
||||
// GIVEN
|
||||
let name = "fig"
|
||||
|
||||
@@ -459,8 +459,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an empty game character key")
|
||||
func getAmiibos_byEmptyGameCharacterKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an empty game character key`() async throws {
|
||||
// GIVEN
|
||||
let key = ""
|
||||
|
||||
@@ -469,11 +469,11 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 853)
|
||||
#expect(amiibos.count == 885)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an empty game character name")
|
||||
func getAmiibos_byEmptyGameCharacterName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an empty game character name`() async throws {
|
||||
// GIVEN
|
||||
let name = ""
|
||||
|
||||
@@ -482,11 +482,11 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 853)
|
||||
#expect(amiibos.count == 885)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an existing game series key")
|
||||
func getAmiibos_byExistingGameSeriesKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an existing game series key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x00"
|
||||
|
||||
@@ -495,15 +495,15 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 42)
|
||||
#expect(amiibos.count == 45)
|
||||
#expect(amiibos.first?.gameSeries == "Super Mario")
|
||||
#expect(amiibos.first?.platform == nil)
|
||||
#expect(amiibos.last?.gameSeries == "Super Mario")
|
||||
#expect(amiibos.last?.platform == nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an existing game series name")
|
||||
func getAmiibos_byExistingGameSeriesName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an existing game series name`() async throws {
|
||||
// GIVEN
|
||||
let name = "The Legend of Zelda"
|
||||
|
||||
@@ -512,15 +512,15 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 28)
|
||||
#expect(amiibos.count == 32)
|
||||
#expect(amiibos.first?.gameSeries == name)
|
||||
#expect(amiibos.first?.platform == nil)
|
||||
#expect(amiibos.last?.gameSeries == name)
|
||||
#expect(amiibos.last?.platform == nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by a non-existing game series key")
|
||||
func getAmiibos_byNonExistingGameSeriesKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by a non-existing game series key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0xf9"
|
||||
|
||||
@@ -531,8 +531,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by a non-existing game series name")
|
||||
func getAmiibos_byNonExistingGameSeriesName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by a non-existing game series name`() async throws {
|
||||
// GIVEN
|
||||
let name = "something"
|
||||
|
||||
@@ -543,8 +543,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.isEmpty)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an incomplete game series key")
|
||||
func getAmiibos_byIncompleteGameSeriesKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an incomplete game series key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x"
|
||||
|
||||
@@ -555,8 +555,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an incomplete game series name")
|
||||
func getAmiibos_byIncompleteGameSeriesName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an incomplete game series name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Super"
|
||||
|
||||
@@ -565,11 +565,11 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 140)
|
||||
#expect(amiibos.count == 143)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an empty game series key")
|
||||
func getAmiibos_byEmptyGameSeriesKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an empty game series key`() async throws {
|
||||
// GIVEN
|
||||
let key = ""
|
||||
|
||||
@@ -578,11 +578,11 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 853)
|
||||
#expect(amiibos.count == 885)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items by an empty game series name")
|
||||
func getAmiibos_byEmptyGameSeriesName() async throws {
|
||||
@Test
|
||||
func `get Amiibo items by an empty game series name`() async throws {
|
||||
// GIVEN
|
||||
let name = ""
|
||||
|
||||
@@ -591,18 +591,18 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 853)
|
||||
#expect(amiibos.count == 885)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items with games data")
|
||||
func getAmiibos_withGamesData() async throws {
|
||||
@Test
|
||||
func `get Amiibo items with games data`() async throws {
|
||||
// GIVEN
|
||||
// WHEN
|
||||
let amiibos = try await service.getAmiibos(.init(showGames: true))
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 853)
|
||||
#expect(amiibos.count == 885)
|
||||
#expect(amiibos.first?.platform != nil)
|
||||
#expect(amiibos.first?.platform?.switch.isEmpty == false)
|
||||
#expect(amiibos.first?.platform?.switch.first?.usages == nil)
|
||||
@@ -613,15 +613,15 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.last?.platform != nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo items with games and usages data")
|
||||
func getAmiibos_withGamesAndUsagesData() async throws {
|
||||
@Test
|
||||
func `get Amiibo items with games and usages data`() async throws {
|
||||
// GIVEN
|
||||
// WHEN
|
||||
let amiibos = try await service.getAmiibos(.init(showUsage: true))
|
||||
|
||||
// THEN
|
||||
#expect(!amiibos.isEmpty)
|
||||
#expect(amiibos.count == 853)
|
||||
#expect(amiibos.count == 885)
|
||||
#expect(amiibos.first?.platform != nil)
|
||||
#expect(amiibos.first?.platform?.switch.isEmpty == false)
|
||||
#expect(amiibos.first?.platform?.switch.first?.usages?.isEmpty == false)
|
||||
@@ -632,21 +632,21 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiibos.last?.platform != nil)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo series")
|
||||
func getAmiiboSeries() async throws {
|
||||
@Test
|
||||
func `get Amiibo series`() async throws {
|
||||
// GIVEN
|
||||
// WHEN
|
||||
let amiiboSeries = try await service.getAmiiboSeries()
|
||||
|
||||
// THEN
|
||||
#expect(!amiiboSeries.isEmpty)
|
||||
#expect(amiiboSeries.count == 26)
|
||||
#expect(amiiboSeries.count == 28)
|
||||
#expect(amiiboSeries.first?.key == "0x00")
|
||||
#expect(amiiboSeries.last?.key == "0xff")
|
||||
}
|
||||
|
||||
@Test("Get Amiibo series by an existing key")
|
||||
func getAmiiboSeries_byExistingKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo series by an existing key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x01"
|
||||
|
||||
@@ -659,8 +659,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiiboSeries.first?.key == key)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo series by a non-existing key")
|
||||
func getAmiiboSeries_byNonExistingKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo series by a non-existing key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0xf9"
|
||||
|
||||
@@ -671,8 +671,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo series by an incomplete key")
|
||||
func getAmiiboSeries_byIncompleteKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo series by an incomplete key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x"
|
||||
|
||||
@@ -683,8 +683,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo series by an empty key")
|
||||
func getAmiiboSeries_byEmptyKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo series by an empty key`() async throws {
|
||||
// GIVEN
|
||||
let key = ""
|
||||
|
||||
@@ -695,8 +695,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo series by an existing name")
|
||||
func getAmiiboSeries_byExistingName() async throws {
|
||||
@Test
|
||||
func `get Amiibo series by an existing name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Legend Of Zelda"
|
||||
|
||||
@@ -709,8 +709,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiiboSeries.first?.name == name)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo series by a non-existing name")
|
||||
func getAmiiboSeries_byNonExistingName() async throws {
|
||||
@Test
|
||||
func `get Amiibo series by a non-existing name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Something"
|
||||
|
||||
@@ -721,8 +721,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo series by an incomplete name")
|
||||
func getAmiiboSeries_byIncompleteName() async throws {
|
||||
@Test
|
||||
func `get Amiibo series by an incomplete name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Zelda"
|
||||
|
||||
@@ -738,8 +738,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiiboSeriesName.name.contains(name))
|
||||
}
|
||||
|
||||
@Test("Get Amiibo series by an empty name")
|
||||
func getAmiiboSeries_byEmptyName() async throws {
|
||||
@Test
|
||||
func `get Amiibo series by an empty name`() async throws {
|
||||
// GIVEN
|
||||
let name = ""
|
||||
|
||||
@@ -748,13 +748,13 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!amiiboSeries.isEmpty)
|
||||
#expect(amiiboSeries.count == 26)
|
||||
#expect(amiiboSeries.count == 28)
|
||||
#expect(amiiboSeries.first?.key == "0x00")
|
||||
#expect(amiiboSeries.last?.key == "0xff")
|
||||
}
|
||||
|
||||
@Test("Get Amiibo types")
|
||||
func getAmiiboTypes() async throws {
|
||||
@Test
|
||||
func `get Amiibo types`() async throws {
|
||||
// GIVEN
|
||||
// WHEN
|
||||
let amiiboTypes = try await service.getAmiiboTypes()
|
||||
@@ -766,8 +766,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiiboTypes.last?.key == "0x03")
|
||||
}
|
||||
|
||||
@Test("Get Amiibo types by an existing key")
|
||||
func getAmiiboTypes_byExistingKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo types by an existing key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x01"
|
||||
|
||||
@@ -780,8 +780,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiiboTypes.first?.key == key)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo types by a non-existing key")
|
||||
func getAmiiboTypes_byNonExistingKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo types by a non-existing key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x09"
|
||||
|
||||
@@ -792,8 +792,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo types by an incomplete key")
|
||||
func getAmiiboTypes_byIncompleteKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo types by an incomplete key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x"
|
||||
|
||||
@@ -804,8 +804,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo types by an empty key")
|
||||
func getAmiiboTypes_byEmptyKey() async throws {
|
||||
@Test
|
||||
func `get Amiibo types by an empty key`() async throws {
|
||||
// GIVEN
|
||||
let key = ""
|
||||
|
||||
@@ -816,8 +816,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo types by an existing name")
|
||||
func getAmiiboTypes_byExistingName() async throws {
|
||||
@Test
|
||||
func `get Amiibo types by an existing name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Card"
|
||||
|
||||
@@ -830,8 +830,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiiboTypes.first?.name == name)
|
||||
}
|
||||
|
||||
@Test("Get Amiibo types by a non-existing name")
|
||||
func getAmiiboTypes_byNonExistingName() async throws {
|
||||
@Test
|
||||
func `get Amiibo types by a non-existing name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Something"
|
||||
|
||||
@@ -842,8 +842,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get Amiibo types by an incomplete name")
|
||||
func getAmiiboTypes_byIncompleteName() async throws {
|
||||
@Test
|
||||
func `get Amiibo types by an incomplete name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Ca"
|
||||
|
||||
@@ -859,8 +859,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiiboTypeName.name.contains(name))
|
||||
}
|
||||
|
||||
@Test("Get Amiibo types by an empty name")
|
||||
func getAmiiboTypes_byEmptyName() async throws {
|
||||
@Test
|
||||
func `get Amiibo types by an empty name`() async throws {
|
||||
// GIVEN
|
||||
let name = ""
|
||||
|
||||
@@ -874,21 +874,21 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(amiiboTypes.last?.key == "0x03")
|
||||
}
|
||||
|
||||
@Test("Get game characters")
|
||||
func getGameCharacters() async throws {
|
||||
@Test
|
||||
func `get Game characters`() async throws {
|
||||
// GIVEN
|
||||
// WHEN
|
||||
let gameCharacters = try await service.getGameCharacters()
|
||||
|
||||
// THEN
|
||||
#expect(!gameCharacters.isEmpty)
|
||||
#expect(gameCharacters.count == 644)
|
||||
#expect(gameCharacters.count == 668)
|
||||
#expect(gameCharacters.first?.key == "0x0000")
|
||||
#expect(gameCharacters.last?.key == "0x3f00")
|
||||
}
|
||||
|
||||
@Test("Get game characters by an existing key")
|
||||
func getGameCharacters_byExistingKey() async throws {
|
||||
@Test
|
||||
func `get Game characters by an existing key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x0001"
|
||||
|
||||
@@ -901,8 +901,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(gameCharacters.first?.key == key)
|
||||
}
|
||||
|
||||
@Test("Get game characters by a non-existing key")
|
||||
func getGameCharacters_byNonExistingKey() async throws {
|
||||
@Test
|
||||
func `get Game characters by a non-existing key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0xffff"
|
||||
|
||||
@@ -913,8 +913,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get game characters by an incomplete key")
|
||||
func getGameCharacters_byIncompleteKey() async throws {
|
||||
@Test
|
||||
func `get Game characters by an incomplete key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x"
|
||||
|
||||
@@ -925,8 +925,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get game characters by an empty key")
|
||||
func getGameCharacters_byEmptyKey() async throws {
|
||||
@Test
|
||||
func `get Game characters by an empty key`() async throws {
|
||||
// GIVEN
|
||||
let key = ""
|
||||
|
||||
@@ -937,8 +937,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get game characters by an existing name")
|
||||
func getGameCharacters_byExistingName() async throws {
|
||||
@Test
|
||||
func `get Game characters by an existing name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Zelda"
|
||||
|
||||
@@ -951,8 +951,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(gameCharacters.first?.name == name)
|
||||
}
|
||||
|
||||
@Test("Get game characters by a non-existing name")
|
||||
func getGameCharacters_byNonExistingName() async throws {
|
||||
@Test
|
||||
func `get Game characters by a non-existing name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Something"
|
||||
|
||||
@@ -963,8 +963,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get game characters by an incomplete name")
|
||||
func getGameCharacters_byIncompleteName() async throws {
|
||||
@Test
|
||||
func `get Game characters by an incomplete name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Zeld"
|
||||
|
||||
@@ -980,8 +980,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(gameCharactersName.name.contains(name))
|
||||
}
|
||||
|
||||
@Test("Get game characters by an empty name")
|
||||
func getGameCharacters_byEmptyName() async throws {
|
||||
@Test
|
||||
func `get Game characters by an empty name`() async throws {
|
||||
// GIVEN
|
||||
let name = ""
|
||||
|
||||
@@ -990,26 +990,26 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!gameCharacters.isEmpty)
|
||||
#expect(gameCharacters.count == 644)
|
||||
#expect(gameCharacters.count == 668)
|
||||
#expect(gameCharacters.first?.key == "0x0000")
|
||||
#expect(gameCharacters.last?.key == "0x3f00")
|
||||
}
|
||||
|
||||
@Test("Get game series")
|
||||
func getGameSeries() async throws {
|
||||
@Test
|
||||
func `get Game series`() async throws {
|
||||
// GIVEN
|
||||
// WHEN
|
||||
let gameSeries = try await service.getGameSeries()
|
||||
|
||||
// THEN
|
||||
#expect(!gameSeries.isEmpty)
|
||||
#expect(gameSeries.count == 116)
|
||||
#expect(gameSeries.count == 117)
|
||||
#expect(gameSeries.first?.key == "0x000")
|
||||
#expect(gameSeries.last?.key == "0x3f0")
|
||||
}
|
||||
|
||||
@Test("Get game series by an existing key")
|
||||
func getGameSeries_byExistingKey() async throws {
|
||||
@Test
|
||||
func `get Game series by an existing key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x001"
|
||||
|
||||
@@ -1022,8 +1022,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(gameSeries.first?.key == key)
|
||||
}
|
||||
|
||||
@Test("Get game series by a non-existing key")
|
||||
func getGameSeries_byNonExistingKey() async throws {
|
||||
@Test
|
||||
func `get Game Series by a non-existing key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0xffff"
|
||||
|
||||
@@ -1034,8 +1034,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get game series by an incomplete key")
|
||||
func getGameSeries_byIncompleteKey() async throws {
|
||||
@Test
|
||||
func `get Game series by an incomplete key`() async throws {
|
||||
// GIVEN
|
||||
let key = "0x"
|
||||
|
||||
@@ -1045,8 +1045,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get game series by an empty key")
|
||||
func getGameSeries_byEmptyKey() async throws {
|
||||
@Test
|
||||
func `get Game series by an empty key`() async throws {
|
||||
// GIVEN
|
||||
let key = ""
|
||||
|
||||
@@ -1057,8 +1057,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get game series by an existing name")
|
||||
func getGameSeries_byExistingName() async throws {
|
||||
@Test
|
||||
func `get Game series by an existing name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Pikmin"
|
||||
|
||||
@@ -1071,8 +1071,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(gameSeries.first?.name == name)
|
||||
}
|
||||
|
||||
@Test("Get game series by a non-existing name")
|
||||
func getGameSeries_byNonExistingName() async throws {
|
||||
@Test
|
||||
func `get Game series by a non-existing name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Something"
|
||||
|
||||
@@ -1083,8 +1083,8 @@ struct AmiiboServiceLiveTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test("Get game series by an incomplete name")
|
||||
func getGameSeries_byIncompleteName() async throws {
|
||||
@Test
|
||||
func `get Game series by an incomplete name`() async throws {
|
||||
// GIVEN
|
||||
let name = "Pik"
|
||||
|
||||
@@ -1100,8 +1100,8 @@ struct AmiiboServiceLiveTests {
|
||||
#expect(gameSeriesName.name.contains(name))
|
||||
}
|
||||
|
||||
@Test("Get game series by an empty name")
|
||||
func getGameSeries_byEmptyName() async throws {
|
||||
@Test
|
||||
func `get Game series by an empty name`() async throws {
|
||||
// GIVEN
|
||||
let name = ""
|
||||
|
||||
@@ -1110,13 +1110,13 @@ struct AmiiboServiceLiveTests {
|
||||
|
||||
// THEN
|
||||
#expect(!gameSeries.isEmpty)
|
||||
#expect(gameSeries.count == 116)
|
||||
#expect(gameSeries.count == 117)
|
||||
#expect(gameSeries.first?.key == "0x000")
|
||||
#expect(gameSeries.last?.key == "0x3f0")
|
||||
}
|
||||
|
||||
@Test("Get the last updated timestamp")
|
||||
func getLastUpdated() async throws {
|
||||
@Test
|
||||
func `get the Last Updated timestamp`() async throws {
|
||||
// GIVEN
|
||||
// WHEN
|
||||
let dateLastUpdated = try await service.getLastUpdated()
|
||||
@@ -1127,9 +1127,9 @@ struct AmiiboServiceLiveTests {
|
||||
from: dateLastUpdated
|
||||
)
|
||||
|
||||
#expect(dateComponents.year == 2024)
|
||||
#expect(dateComponents.month == 9)
|
||||
#expect(dateComponents.day == 6)
|
||||
#expect(dateComponents.year == 2025)
|
||||
#expect(dateComponents.month == 7)
|
||||
#expect(dateComponents.day == 18)
|
||||
}
|
||||
|
||||
}
|
||||
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"]]},"sections":[],"abstract":[{"type":"text","text":"A list of identifiers."}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/game\/identifiers"]}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers"},"kind":"symbol","metadata":{"role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifiers","kind":"identifier"},{"text":": [","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"kind":"text","text":"]"}],"title":"identifiers","externalID":"s:13AmiiboService0A0V4GameV11identifiersSaySSGvp"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifiers","kind":"identifier"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"]"}],"languages":["swift"]}]}],"schemaVersion":{"minor":3,"patch":0,"major":0},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/identifiers":{"title":"identifiers","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/game\/identifiers","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifiers"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"]"}],"type":"topic","abstract":[{"type":"text","text":"A list of identifiers."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"type":"topic","abstract":[{"type":"text","text":"A model that represents a game related to an amiibo item."}],"navigatorTitle":[{"kind":"identifier","text":"Game"}],"title":"Amiibo.Game","url":"\/documentation\/amiiboservice\/amiibo\/game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"type":"text","text":"A name."}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game\/name"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name"},"schemaVersion":{"patch":0,"major":0,"minor":3},"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}]}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"sections":[],"metadata":{"role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"symbolKind":"property","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"title":"name","externalID":"s:13AmiiboService0A0V4GameV4nameSSvp"},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/name":{"kind":"symbol","role":"symbol","abstract":[{"text":"A name.","type":"text"}],"url":"\/documentation\/amiiboservice\/amiibo\/game\/name","type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"title":"name","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"type":"topic","abstract":[{"type":"text","text":"A model that represents a game related to an amiibo item."}],"navigatorTitle":[{"kind":"identifier","text":"Game"}],"title":"Amiibo.Game","url":"\/documentation\/amiiboservice\/amiibo\/game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"text":"A list of amiibo usages, if any.","type":"text"}],"metadata":{"title":"usages","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"usages","kind":"identifier"},{"text":": [","kind":"text"},{"text":"Amiibo","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"text":"Usage","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V5UsageV"},{"text":"]?","kind":"text"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V4GameV6usagesSayAC5UsageVGSgvp"},"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"]}],"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"usages"},{"kind":"text","text":": ["},{"text":"Amiibo","preciseIdentifier":"s:13AmiiboService0A0V","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"typeIdentifier"},{"text":".","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V5UsageV","text":"Usage","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"},{"kind":"text","text":"]?"}],"platforms":["macOS"]}]}],"kind":"symbol","sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages","interfaceLanguage":"swift"},"schemaVersion":{"major":0,"patch":0,"minor":3},"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"type":"topic","abstract":[{"type":"text","text":"A model that represents a game related to an amiibo item."}],"navigatorTitle":[{"kind":"identifier","text":"Game"}],"title":"Amiibo.Game","url":"\/documentation\/amiiboservice\/amiibo\/game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/usages":{"kind":"symbol","role":"symbol","abstract":[{"type":"text","text":"A list of amiibo usages, if any."}],"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"usages"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V","text":"Amiibo"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V5UsageV","text":"Usage"},{"kind":"text","text":"]?"}],"title":"usages","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/game\/usages","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"kind":"symbol","role":"symbol","abstract":[{"text":"A model that represents the usage of an amiibo item within a certain game.","type":"text"}],"navigatorTitle":[{"text":"Usage","kind":"identifier"}],"fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Usage","kind":"identifier"}],"title":"Amiibo.Usage","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter","interfaceLanguage":"swift"},"kind":"symbol","sections":[],"abstract":[{"type":"text","text":"A game character."}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"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":"declarations"}],"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameCharacter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"externalID":"s:13AmiiboService0A0V13gameCharacterSSvp","symbolKind":"property","roleHeading":"Instance Property","title":"gameCharacter"},"schemaVersion":{"patch":0,"major":0,"minor":3},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/gamecharacter"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/gameCharacter":{"type":"topic","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/gamecharacter","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"title":"gameCharacter","abstract":[{"type":"text","text":"A game character."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"abstract":[{"type":"text","text":"A game series."}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/gameseries"],"traits":[{"interfaceLanguage":"swift"}]}],"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"gameSeries"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"externalID":"s:13AmiiboService0A0V10gameSeriesSSvp","symbolKind":"property","roleHeading":"Instance Property","title":"gameSeries"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries","interfaceLanguage":"swift"},"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"languages":["swift"],"platforms":["macOS"]}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/gameSeries":{"abstract":[{"text":"A game series.","type":"text"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/gameseries","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameSeries","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"type":"topic","title":"gameSeries"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"head","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"languages":["swift"]}],"kind":"declarations"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/head"],"traits":[{"interfaceLanguage":"swift"}]}],"metadata":{"title":"head","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"head","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V4headSSvp"},"kind":"symbol","sections":[],"abstract":[{"type":"text","text":"The first 8 hexadecimal characters of an identifier."}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"patch":0,"major":0,"minor":3},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head"},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/head":{"abstract":[{"text":"The first 8 hexadecimal characters of an identifier.","type":"text"}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"head","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"url":"\/documentation\/amiiboservice\/amiibo\/head","title":"head","type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"text":"An identifier.","type":"text"}],"sections":[],"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"var"},{"text":" ","kind":"text"},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"text":" { ","kind":"text"},{"text":"get","kind":"keyword"},{"text":" }","kind":"text"}],"languages":["swift"]}],"kind":"declarations"}],"schemaVersion":{"patch":0,"minor":3,"major":0},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/identifier"],"traits":[{"interfaceLanguage":"swift"}]}],"metadata":{"title":"identifier","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"fragments":[{"kind":"keyword","text":"var"},{"text":" ","kind":"text"},{"text":"identifier","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V10identifierSSvp"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"kind":"symbol","identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier","interfaceLanguage":"swift"},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/identifier":{"abstract":[{"type":"text","text":"An identifier."}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/identifier","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier","fragments":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifier","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"title":"identifier","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","interfaceLanguage":"swift"},"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"image"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}],"symbolKind":"property","title":"image","roleHeading":"Instance Property","role":"symbol","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V5imageSSvp"},"abstract":[{"type":"text","text":"An image link."}],"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"image","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]}],"kind":"declarations"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/image"],"traits":[{"interfaceLanguage":"swift"}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"sections":[],"schemaVersion":{"major":0,"patch":0,"minor":3},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/image":{"type":"topic","title":"image","abstract":[{"text":"An image link.","type":"text"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/image","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"image","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"sections":[],"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/imageurl"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"minor":3,"major":0,"patch":0},"abstract":[{"type":"text","text":"A URL related to an image link, if any."}],"metadata":{"role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"symbolKind":"property","fragments":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"imageURL","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation3URLV","text":"URL","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"title":"imageURL","externalID":"s:13AmiiboService0A0V8imageURL10Foundation0D0VSgvp"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"imageURL","kind":"identifier"},{"text":": ","kind":"text"},{"text":"URL","preciseIdentifier":"s:10Foundation3URLV","kind":"typeIdentifier"},{"text":"? { ","kind":"text"},{"text":"get","kind":"keyword"},{"text":" }","kind":"text"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/imageURL":{"abstract":[{"type":"text","text":"A URL related to an image link, if any."}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/imageurl","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL","fragments":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"imageURL","kind":"identifier"},{"text":": ","kind":"text"},{"text":"URL","preciseIdentifier":"s:10Foundation3URLV","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"title":"imageURL","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"type":"text","text":"An amiibo name."}],"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"symbolKind":"property","title":"name","externalID":"s:13AmiiboService0A0V4nameSSvp","roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/name"],"traits":[{"interfaceLanguage":"swift"}]}],"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}]}],"kind":"declarations"}],"kind":"symbol","sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name"},"schemaVersion":{"patch":0,"major":0,"minor":3},"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/name":{"title":"name","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"role":"symbol","abstract":[{"text":"An amiibo name.","type":"text"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name","url":"\/documentation\/amiiboservice\/amiibo\/name"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"type":"text","text":"A game platform type, if any."}],"metadata":{"externalID":"s:13AmiiboService0A0V8platformAC8PlatformVSgvp","symbolKind":"property","title":"platform","role":"symbol","modules":[{"name":"AmiiboService"}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Amiibo","preciseIdentifier":"s:13AmiiboService0A0V","kind":"typeIdentifier"},{"text":".","kind":"text"},{"kind":"typeIdentifier","text":"Platform","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"text":"?","kind":"text"}],"roleHeading":"Instance Property"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.property"],"traits":[{"interfaceLanguage":"swift"}]}],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"platform"},{"kind":"text","text":": "},{"text":"Amiibo","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},{"text":".","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V8PlatformV","kind":"typeIdentifier","text":"Platform","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"},{"kind":"text","text":"?"}],"languages":["swift"]}]}],"kind":"symbol","sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property"},"schemaVersion":{"major":0,"patch":0,"minor":3},"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","kind":"symbol","title":"Amiibo.Platform","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Platform","kind":"identifier"}],"abstract":[{"text":"A model that represents a collection of ","type":"text"},{"type":"codeVoice","code":"WiiU"},{"text":", ","type":"text"},{"code":"3DS","type":"codeVoice"},{"type":"text","text":", and "},{"code":"Switch","type":"codeVoice"},{"type":"text","text":" games related to an amiibo item."}],"url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","type":"topic","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/platform-swift.property":{"kind":"symbol","role":"symbol","abstract":[{"type":"text","text":"A game platform type, if any."}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"platform"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V","text":"Amiibo"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV","text":"Platform"},{"text":"?","kind":"text"}],"type":"topic","title":"platform","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.property","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"}}}
|
||||
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 @@
|
||||
{"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"text":"release","kind":"identifier"},{"kind":"text","text":": "},{"text":"Amiibo","kind":"typeIdentifier","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","kind":"typeIdentifier","text":"Release"}]}],"kind":"declarations"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.property"]}],"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"release","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V","text":"Amiibo","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV","kind":"typeIdentifier","text":"Release"}],"title":"release","externalID":"s:13AmiiboService0A0V7releaseAC7ReleaseVvp","symbolKind":"property"},"kind":"symbol","sections":[],"abstract":[{"type":"text","text":"A release date."}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property","interfaceLanguage":"swift"},"schemaVersion":{"minor":3,"major":0,"patch":0},"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"abstract":[{"type":"text","text":"A model that represents a collection of release dates related to an amiibo item."}],"role":"symbol","navigatorTitle":[{"text":"Release","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","title":"Amiibo.Release"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/release-swift.property":{"abstract":[{"text":"A release date.","type":"text"}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.property","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property","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"}],"type":"topic","title":"release"}}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america"]}],"schemaVersion":{"minor":3,"major":0,"patch":0},"abstract":[{"text":"A release date for North America, if any.","type":"text"}],"metadata":{"title":"america","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"america","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V7ReleaseV7america10Foundation4DateVSgvp"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america","interfaceLanguage":"swift"},"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"america","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation4DateV","text":"Date","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"languages":["swift"]}],"kind":"declarations"}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/america":{"kind":"symbol","role":"symbol","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america","abstract":[{"type":"text","text":"A release date for North America, if any."}],"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"}],"title":"america","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"abstract":[{"type":"text","text":"A model that represents a collection of release dates related to an amiibo item."}],"role":"symbol","navigatorTitle":[{"text":"Release","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","title":"Amiibo.Release"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","sections":[],"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"australia"},{"kind":"text","text":": "},{"preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier","text":"Date"},{"kind":"text","text":"?"}],"title":"australia","externalID":"s:13AmiiboService0A0V7ReleaseV9australia10Foundation4DateVSgvp","symbolKind":"property"},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia"],"traits":[{"interfaceLanguage":"swift"}]}],"abstract":[{"type":"text","text":"A release date for Australia, 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":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"australia"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"kind":"text","text":"?"}]}]}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia","interfaceLanguage":"swift"},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/australia":{"abstract":[{"text":"A release date for Australia, if any.","type":"text"}],"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"australia"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"kind":"text","text":"?"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia","title":"australia","type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"abstract":[{"type":"text","text":"A model that represents a collection of release dates related to an amiibo item."}],"role":"symbol","navigatorTitle":[{"text":"Release","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","title":"Amiibo.Release"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"symbolKind":"property","roleHeading":"Instance Property","title":"europe","externalID":"s:13AmiiboService0A0V7ReleaseV6europe10Foundation4DateVSgvp","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"europe","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"kind":"text","text":"?"}]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe"},"abstract":[{"type":"text","text":"A release date for Europe, if any."}],"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"europe","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}]}],"kind":"declarations"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"schemaVersion":{"patch":0,"minor":3,"major":0},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/europe"]}],"sections":[],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/europe":{"type":"topic","abstract":[{"text":"A release date for Europe, if any.","type":"text"}],"title":"europe","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/europe","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe","kind":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"europe"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"abstract":[{"type":"text","text":"A model that represents a collection of release dates related to an amiibo item."}],"role":"symbol","navigatorTitle":[{"text":"Release","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","title":"Amiibo.Release"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"type":"text","text":"A release date for Japan, if any."}],"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"japan"},{"kind":"text","text":": "},{"preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier","text":"Date"},{"kind":"text","text":"?"}],"symbolKind":"property","title":"japan","role":"symbol","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","externalID":"s:13AmiiboService0A0V7ReleaseV5japan10Foundation4DateVSgvp"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/japan"]}],"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"japan"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"text":"?","kind":"text"}],"languages":["swift"],"platforms":["macOS"]}]}],"kind":"symbol","sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan","interfaceLanguage":"swift"},"schemaVersion":{"minor":3,"major":0,"patch":0},"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"abstract":[{"type":"text","text":"A model that represents a collection of release dates related to an amiibo item."}],"role":"symbol","navigatorTitle":[{"text":"Release","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"type":"topic","title":"Amiibo.Release"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/japan":{"kind":"symbol","role":"symbol","abstract":[{"text":"A release date for Japan, if any.","type":"text"}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/japan","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"japan"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation4DateV","text":"Date","kind":"typeIdentifier"},{"kind":"text","text":"?"}],"title":"japan","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"sections":[],"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/series"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"abstract":[{"type":"text","text":"An amiibo series."}],"metadata":{"role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"series","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"title":"series","externalID":"s:13AmiiboService0A0V6seriesSSvp"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series","interfaceLanguage":"swift"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/series":{"type":"topic","title":"series","abstract":[{"type":"text","text":"An amiibo series."}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/series","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}]}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/tail"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"abstract":[{"type":"text","text":"The last 8 hexadecimal characters of an identifier."}],"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"text":"tail","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"symbolKind":"property","title":"tail","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","role":"symbol","externalID":"s:13AmiiboService0A0V4tailSSvp"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","interfaceLanguage":"swift"},"primaryContentSections":[{"declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"tail"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"languages":["swift"],"platforms":["macOS"]}],"kind":"declarations"}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/tail":{"kind":"symbol","role":"symbol","abstract":[{"text":"The last 8 hexadecimal characters of an identifier.","type":"text"}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"tail","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"type":"topic","title":"tail","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","url":"\/documentation\/amiiboservice\/amiibo\/tail"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"type":"text","text":"An amiibo type."}],"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"kind":"text","text":": "},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"externalID":"s:13AmiiboService0A0V4typeSSvp","symbolKind":"property","roleHeading":"Instance Property","title":"type"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/type"],"traits":[{"interfaceLanguage":"swift"}]}],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}]}]}],"kind":"symbol","sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type"},"schemaVersion":{"patch":0,"major":0,"minor":3},"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/type":{"type":"topic","title":"type","abstract":[{"type":"text","text":"An amiibo type."}],"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/type","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}]}}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"abstract":[{"text":"An explanation of how to use an amiibo item.","type":"text"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/explanation"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation"},"metadata":{"roleHeading":"Instance Property","symbolKind":"property","title":"explanation","role":"symbol","modules":[{"name":"AmiiboService"}],"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"explanation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"externalID":"s:13AmiiboService0A0V5UsageV11explanationSSvp"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"explanation","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"languages":["swift"]}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/explanation":{"abstract":[{"type":"text","text":"An explanation of how to use an amiibo item."}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"explanation","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"url":"\/documentation\/amiiboservice\/amiibo\/usage\/explanation","title":"explanation","type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"kind":"symbol","role":"symbol","abstract":[{"text":"A model that represents the usage of an amiibo item within a certain game.","type":"text"}],"navigatorTitle":[{"text":"Usage","kind":"identifier"}],"fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Usage","kind":"identifier"}],"title":"Amiibo.Usage","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"sections":[],"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"]}],"metadata":{"role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"isWriteable","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}],"title":"isWriteable","externalID":"s:13AmiiboService0A0V5UsageV11isWriteableSbvp"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable"},"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"isWriteable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/isWriteable":{"title":"isWriteable","role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/usage\/iswriteable","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"isWriteable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"type":"topic","abstract":[{"type":"text","text":"A flag that indicates whether an amiibo item can save game data in it."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"kind":"symbol","role":"symbol","abstract":[{"text":"A model that represents the usage of an amiibo item within a certain game.","type":"text"}],"navigatorTitle":[{"text":"Usage","kind":"identifier"}],"fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Usage","kind":"identifier"}],"title":"Amiibo.Usage","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","url":"\/documentation\/amiiboservice\/amiibo\/usage"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"url":"\/documentation\/amiiboservice\/amiibo","title":"Amiibo","navigatorTitle":[{"text":"Amiibo","kind":"identifier"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"}}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"sections":[],"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"]]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboclient\/live(_:)"]}],"schemaVersion":{"major":0,"patch":0,"minor":3},"abstract":[{"text":"A live Amiibo client to interact with the online service.","type":"text"}],"metadata":{"role":"symbol","roleHeading":"Case","modules":[{"name":"AmiiboService"}],"symbolKind":"case","fragments":[{"text":"case","kind":"keyword"},{"text":" ","kind":"text"},{"text":"live","kind":"identifier"},{"text":"(","kind":"text"},{"text":"AmiiboLiveClient","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A10LiveClientV"},{"text":")","kind":"text"}],"title":"AmiiboClient.live(_:)","externalID":"s:13AmiiboService0A6ClientO4liveyAcA0a4LiveC0VcACmF"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/live(_:)"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"case","kind":"keyword"},{"text":" ","kind":"text"},{"text":"live","kind":"identifier"},{"text":"(","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient","preciseIdentifier":"s:13AmiiboService0A10LiveClientV","text":"AmiiboLiveClient","kind":"typeIdentifier"},{"text":" = .init())","kind":"text"}],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient":{"title":"AmiiboLiveClient","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboLiveClient","kind":"identifier"}],"role":"symbol","navigatorTitle":[{"text":"AmiiboLiveClient","kind":"identifier"}],"type":"topic","abstract":[{"text":"A type that implements a live client to the online service.","type":"text"}],"url":"\/documentation\/amiiboservice\/amiiboliveclient","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient"},"doc://AmiiboService/documentation/AmiiboService/AmiiboClient":{"abstract":[{"text":"A representation of the types of client that a ","type":"text"},{"type":"reference","isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService"},{"type":"text","text":" service can utilize."}],"fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboClient","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiiboclient","title":"AmiiboClient","navigatorTitle":[{"kind":"identifier","text":"AmiiboClient"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"},"doc://AmiiboService/documentation/AmiiboService/AmiiboClient/live(_:)":{"kind":"symbol","role":"symbol","url":"\/documentation\/amiiboservice\/amiiboclient\/live(_:)","type":"topic","abstract":[{"text":"A live Amiibo client to interact with the online service.","type":"text"}],"fragments":[{"text":"case","kind":"keyword"},{"text":" ","kind":"text"},{"text":"live","kind":"identifier"},{"text":"(","kind":"text"},{"text":"AmiiboLiveClient","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A10LiveClientV"},{"text":")","kind":"text"}],"title":"AmiiboClient.live(_:)","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/live(_:)"},"doc://AmiiboService/documentation/AmiiboService/AmiiboService":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","kind":"symbol","title":"AmiiboService","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"AmiiboService"}],"abstract":[{"text":"A type that implements the service that uses a client to make calls.","type":"text"}],"url":"\/documentation\/amiiboservice\/amiiboservice","type":"topic","navigatorTitle":[{"text":"AmiiboService","kind":"identifier"}],"role":"symbol"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"]]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboclient\/mock(_:)"]}],"schemaVersion":{"minor":3,"patch":0,"major":0},"abstract":[{"type":"text","text":"A mock Amiibo client, for testing purposes."}],"metadata":{"role":"symbol","roleHeading":"Case","modules":[{"name":"AmiiboService"}],"symbolKind":"case","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"mock"},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"AmiiboMockClient","preciseIdentifier":"s:13AmiiboService0A10MockClientV"},{"kind":"text","text":")"}],"title":"AmiiboClient.mock(_:)","externalID":"s:13AmiiboService0A6ClientO4mockyAcA0a4MockC0VcACmF"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/mock(_:)"},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"case","kind":"keyword"},{"text":" ","kind":"text"},{"text":"mock","kind":"identifier"},{"text":"(","kind":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboMockClient","preciseIdentifier":"s:13AmiiboService0A10MockClientV","text":"AmiiboMockClient","kind":"typeIdentifier"},{"text":")","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboService":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","kind":"symbol","title":"AmiiboService","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"AmiiboService"}],"abstract":[{"text":"A type that implements the service that uses a client to make calls.","type":"text"}],"url":"\/documentation\/amiiboservice\/amiiboservice","type":"topic","navigatorTitle":[{"text":"AmiiboService","kind":"identifier"}],"role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboMockClient":{"url":"\/documentation\/amiiboservice\/amiibomockclient","kind":"symbol","role":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboMockClient","kind":"identifier"}],"type":"topic","abstract":[{"type":"text","text":"A type that implements a mock client, for testing purposes."}],"title":"AmiiboMockClient","navigatorTitle":[{"text":"AmiiboMockClient","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboMockClient"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/AmiiboClient/mock(_:)":{"kind":"symbol","role":"symbol","abstract":[{"type":"text","text":"A mock Amiibo client, for testing purposes."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiiboclient\/mock(_:)","fragments":[{"text":"case","kind":"keyword"},{"text":" ","kind":"text"},{"text":"mock","kind":"identifier"},{"text":"(","kind":"text"},{"text":"AmiiboMockClient","preciseIdentifier":"s:13AmiiboService0A10MockClientV","kind":"typeIdentifier"},{"text":")","kind":"text"}],"title":"AmiiboClient.mock(_:)","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient\/mock(_:)"},"doc://AmiiboService/documentation/AmiiboService/AmiiboClient":{"abstract":[{"text":"A representation of the types of client that a ","type":"text"},{"type":"reference","isActive":true,"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService"},{"type":"text","text":" service can utilize."}],"fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboClient","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiiboclient","title":"AmiiboClient","navigatorTitle":[{"kind":"identifier","text":"AmiiboClient"}],"type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient"}}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameCharacter","interfaceLanguage":"swift"},"kind":"symbol","sections":[],"abstract":[{"type":"text","text":"A game character 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":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}]}],"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameCharacter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}],"externalID":"s:13AmiiboService0A6FilterV13gameCharacterSSSgvp","symbolKind":"property","roleHeading":"Instance Property","title":"gameCharacter"},"schemaVersion":{"major":0,"patch":0,"minor":3},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/gamecharacter"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"title":"AmiiboFilter","role":"symbol","navigatorTitle":[{"text":"AmiiboFilter","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibofilter","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"text":"AmiiboFilter","kind":"identifier"}],"type":"topic","abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting amiibo items."}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/gameCharacter":{"kind":"symbol","role":"symbol","abstract":[{"type":"text","text":"A game character to return, if any."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibofilter\/gamecharacter","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"title":"gameCharacter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameCharacter"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameSeries","interfaceLanguage":"swift"},"kind":"symbol","sections":[],"abstract":[{"type":"text","text":"A game series to return, if any."}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"},{"kind":"text","text":"?"}],"languages":["swift"],"platforms":["macOS"]}]}],"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"},{"kind":"text","text":"?"}],"externalID":"s:13AmiiboService0A6FilterV10gameSeriesSSSgvp","symbolKind":"property","roleHeading":"Instance Property","title":"gameSeries"},"schemaVersion":{"minor":3,"major":0,"patch":0},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/gameseries"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/gameSeries":{"abstract":[{"type":"text","text":"A game series to return, if any."}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameSeries","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"url":"\/documentation\/amiiboservice\/amiibofilter\/gameseries","title":"gameSeries","type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/gameSeries"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"title":"AmiiboFilter","role":"symbol","navigatorTitle":[{"text":"AmiiboFilter","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibofilter","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"text":"AmiiboFilter","kind":"identifier"}],"type":"topic","abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting amiibo items."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"kind":"symbol","sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/identifier"]}],"schemaVersion":{"patch":0,"minor":3,"major":0},"abstract":[{"type":"text","text":"An amiibo identifier to return, if any."}],"metadata":{"title":"identifier","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"identifier","kind":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A6FilterV10identifierSSSgvp"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/identifier","interfaceLanguage":"swift"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?","kind":"text"}]}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"title":"AmiiboFilter","role":"symbol","navigatorTitle":[{"text":"AmiiboFilter","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibofilter","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"text":"AmiiboFilter","kind":"identifier"}],"type":"topic","abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting amiibo items."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/identifier":{"title":"identifier","role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/identifier","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/identifier","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}],"type":"topic","abstract":[{"text":"An amiibo identifier to return, if any.","type":"text"}]}}}
|
||||
+1
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/name","interfaceLanguage":"swift"},"kind":"symbol","sections":[],"abstract":[{"type":"text","text":"An amiibo name 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":"name"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}]}],"kind":"declarations"}],"metadata":{"role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"symbolKind":"property","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":"?"}],"title":"name","externalID":"s:13AmiiboService0A6FilterV4nameSSSgvp"},"schemaVersion":{"minor":3,"patch":0,"major":0},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibofilter\/name"]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/name":{"kind":"symbol","role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/name","abstract":[{"type":"text","text":"An amiibo name to return, if any."}],"type":"topic","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"}],"title":"name","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/name"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"title":"AmiiboFilter","role":"symbol","navigatorTitle":[{"text":"AmiiboFilter","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibofilter","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"text":"AmiiboFilter","kind":"identifier"}],"type":"topic","abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting amiibo items."}]}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"schemaVersion":{"minor":3,"major":0,"patch":0},"sections":[],"abstract":[{"type":"text","text":"An amiibo series to return, if any."}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/series"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/series","interfaceLanguage":"swift"},"metadata":{"roleHeading":"Instance Property","symbolKind":"property","title":"series","role":"symbol","modules":[{"name":"AmiiboService"}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"externalID":"s:13AmiiboService0A6FilterV6seriesSSSgvp"},"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"text":"series","kind":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}]}],"kind":"declarations"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/series":{"kind":"symbol","role":"symbol","url":"\/documentation\/amiiboservice\/amiibofilter\/series","abstract":[{"text":"An amiibo series to return, if any.","type":"text"}],"type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"series","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"title":"series","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/series"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"title":"AmiiboFilter","role":"symbol","navigatorTitle":[{"text":"AmiiboFilter","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibofilter","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"text":"AmiiboFilter","kind":"identifier"}],"type":"topic","abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting amiibo items."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showGames","interfaceLanguage":"swift"},"kind":"symbol","sections":[],"abstract":[{"text":"A flag indicating whether to include games in the response, if any.","type":"text"}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"primaryContentSections":[{"declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"showGames","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"metadata":{"role":"symbol","modules":[{"name":"AmiiboService"}],"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"}],"externalID":"s:13AmiiboService0A6FilterV9showGamesSbSgvp","symbolKind":"property","roleHeading":"Instance Property","title":"showGames"},"schemaVersion":{"major":0,"minor":3,"patch":0},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/showgames"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/showGames":{"abstract":[{"type":"text","text":"A flag indicating whether to include games in the response, if any."}],"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"showGames","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"url":"\/documentation\/amiiboservice\/amiibofilter\/showgames","title":"showGames","type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showGames"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"title":"AmiiboFilter","role":"symbol","navigatorTitle":[{"text":"AmiiboFilter","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibofilter","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"text":"AmiiboFilter","kind":"identifier"}],"type":"topic","abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting amiibo items."}]},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"schemaVersion":{"major":0,"minor":3,"patch":0},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/showusage"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage"},"sections":[],"abstract":[{"type":"text","text":"A flag indicating whether to include amiibo usages in games in the response, if any."}],"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"showUsage"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"},{"text":"?","kind":"text"}],"symbolKind":"property","title":"showUsage","role":"symbol","externalID":"s:13AmiiboService0A6FilterV9showUsageSbSgvp","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}]},"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"showUsage","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"},{"kind":"text","text":"?"}],"platforms":["macOS"]}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/showUsage":{"kind":"symbol","role":"symbol","abstract":[{"type":"text","text":"A flag indicating whether to include amiibo usages in games in the response, if any."}],"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"}],"type":"topic","title":"showUsage","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/showUsage","url":"\/documentation\/amiiboservice\/amiibofilter\/showusage"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"title":"AmiiboFilter","role":"symbol","navigatorTitle":[{"text":"AmiiboFilter","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibofilter","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"text":"AmiiboFilter","kind":"identifier"}],"type":"topic","abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting amiibo items."}]}}}
|
||||
@@ -0,0 +1 @@
|
||||
{"abstract":[{"text":"An amiibo type to return, if any.","type":"text"}],"sections":[],"primaryContentSections":[{"declarations":[{"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"text":"?","kind":"text"}],"platforms":["macOS"]}],"kind":"declarations"}],"schemaVersion":{"patch":0,"minor":3,"major":0},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibofilter\/type"],"traits":[{"interfaceLanguage":"swift"}]}],"metadata":{"role":"symbol","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"text":"type","kind":"identifier"},{"kind":"text","text":": "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"kind":"text","text":"?"}],"title":"type","externalID":"s:13AmiiboService0A6FilterV4typeSSSgvp"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter"]]},"kind":"symbol","identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/type","interfaceLanguage":"swift"},"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter/type":{"abstract":[{"text":"An amiibo type to return, if any.","type":"text"}],"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"?"}],"url":"\/documentation\/amiiboservice\/amiibofilter\/type","title":"type","type":"topic","kind":"symbol","role":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter\/type"},"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","kind":"symbol","role":"collection","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"url":"\/documentation\/amiiboservice","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"title":"AmiiboFilter","role":"symbol","navigatorTitle":[{"text":"AmiiboFilter","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibofilter","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"text":"AmiiboFilter","kind":"identifier"}],"type":"topic","abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting amiibo items."}]}}}
|
||||
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
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user