Implemented the KeyNameFilter filter and conformed it to the Filter protocol.

This commit is contained in:
Javier Cicchelli 2023-04-19 22:25:18 +02:00
parent 35027dcd38
commit d1de1939e4

View File

@ -0,0 +1,56 @@
public struct KeyNameFilter {
// MARK: Properties
private let key: String?
private let name: String?
// MARK: Initialisers
public init(
key: String?,
name: String?
) {
self.key = key
self.name = name
}
}
// MARK: - Filter
extension KeyNameFilter: Filter {
// MARK: Functions
func makeParameters() -> [String : String?] {
var parameters: [String : String?] = [:]
if let key {
parameters[.Key.key] = key
}
if let name {
parameters[.Key.name] = name
}
return parameters
}
}
// MARK: - Type aliases
public typealias AmiiboSeriesFilter = KeyNameFilter
public typealias AmiiboTypeFilter = KeyNameFilter
public typealias CharacterFilter = KeyNameFilter
public typealias GameSeriesFilter = KeyNameFilter
// MARK: - String+Key
private extension String {
enum Key {
static let key = "key"
static let name = "name"
}
}