This PR contains the work done to implement the actual public service interface to the Amiibo API. To provide further details about this work: - [x] defined a `Filter` protocol; - [x] implemented the `AmiiboFilter` and the `KeyNameFilter` filters; - [x] implemented the `Result` model; - [x] defined the `Service` protocol; - [x] implemented the `AmiiboService` concrete service; - [x] fixed the `path` of the `GetAmiiboEndpoint` endpoint; - [x] made the `usage` property of the `Game` model optional; - [x] replaced the `showGames` and the `showUsage` flags of the `AmiiboFilter` filter with an enumeration. Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Reviewed-on: #4
15 lines
488 B
Swift
15 lines
488 B
Swift
import Foundation
|
|
|
|
protocol Service {
|
|
|
|
// MARK: Functions
|
|
|
|
func amiibos(filter: AmiiboFilter) async throws -> [Amiibo]
|
|
func amiiboSeries(filter: AmiiboSeriesFilter) async throws -> [AmiiboSeries]
|
|
func amiiboTypes(filter: AmiiboTypeFilter) async throws -> [AmiiboType]
|
|
func gameSeries(filter: GameSeriesFilter) async throws -> [GameSeries]
|
|
func characters(filter: CharacterFilter) async throws -> [Character]
|
|
func lastUpdated() async throws -> Date
|
|
|
|
}
|