This PR contains the work done to migrate the *almost* completed**Amiibo API** implementation done in another project to its own stand-alone package. Reviewed-on: #2 Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
64 lines
1.7 KiB
Swift
64 lines
1.7 KiB
Swift
//===----------------------------------------------------------------------===
|
|
//
|
|
// 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()
|
|
}
|
|
|
|
}
|