From 731a2585b4ce5d48b9fe7f39f7b8050ab5718061 Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Tue, 9 Sep 2025 08:22:08 +0200 Subject: [PATCH] Documented the APIClient protocol in the library target. --- Sources/Internal/Protocols/APIClient.swift | 43 ++++++++++++++++++---- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/Sources/Internal/Protocols/APIClient.swift b/Sources/Internal/Protocols/APIClient.swift index bcb90ae..c018758 100644 --- a/Sources/Internal/Protocols/APIClient.swift +++ b/Sources/Internal/Protocols/APIClient.swift @@ -12,15 +12,44 @@ import Foundation -public protocol APIClient { +/// A protocol that defines API clients containing all available endpoints to interact with. +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 + /// 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 }