amiibo-api/Sources/Public/Services/AmiiboService.swift
Javier Cicchelli da07ef7e4f Moved the Amiibo API implementation to its own package (#2)
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>
2024-09-14 22:26:39 +00:00

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()
}
}