Skip to content

Instantly share code, notes, and snippets.

@ertembiyik
Last active May 31, 2022 19:33
Show Gist options
  • Save ertembiyik/01b55ff8c5ff81997269a1ac35803cb1 to your computer and use it in GitHub Desktop.
Save ertembiyik/01b55ff8c5ff81997269a1ac35803cb1 to your computer and use it in GitHub Desktop.
extension RickAndMortyService {
enum CharacterRoute: RouteProtcol {
case id(Int)
case base([Filters])
var stringValue: String {
switch self {
case .id(let id):
return "character/\(id)"
case .base(let characterFilters):
var stringValue = "character/" + (characterFilters.isEmpty ? "" : "?" + characterFilters.map { $0.getStringValue() + "&"}.joined())
stringValue.removeLast()
return stringValue
}
}
var method: String {
switch self {
case .id:
return "GET"
case .base:
return "GET"
}
}
static func searchBy(id: Int, completion: @escaping(Character?, Error?) -> ()) {
}
static func searchWith(filters: [Filters], completion: @escaping([Character]?, Error?) -> ()) {
}
}
enum Filters {
case name(String)
case status(String)
case species(String)
case type(String)
case gender(String)
case page(Int)
func getStringValue() -> String {
switch self {
case .name(let name):
return "name=" + name
case .status(let status):
return "status=" + status
case .species(let species):
return "species=" + species
case .type(let type):
return "type=" + type
case .gender(let gender):
return "gender=" + gender
case .page(let page):
return "page=" + "\(page)"
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment