Last active
August 2, 2020 05:15
-
-
Save olivaresf/7011082f5ab0528fd6ee055895520eb7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private struct FetchSuccess { | |
let asignees: [IssueAssigneeViewModel] | |
let nextPage: Int? | |
} | |
private func fetch(owner: String, | |
repo: String, | |
pageNumber: Int, | |
completion: @escaping (Result<FetchSuccess>) -> Void) { | |
let request = V3AssigneesRequest(owner: owner, | |
repo: repo, | |
page: pageNumber) | |
client.client.send(request) { result in | |
switch result { | |
case .success(let response): | |
let sortedUsers = response.data | |
.sorted { | |
if $0.login == self.client.userSession?.username { | |
return true | |
} else { | |
return $0.login.caseInsensitiveCompare($1.login) == .orderedAscending | |
} | |
}.map { IssueAssigneeViewModel(login: $0.login, avatarURL: $0.avatarUrl) } | |
let fetchSuccess = FetchSuccess(asignees: sortedUsers, | |
nextPage: response.next) | |
completion(.success(fetchSuccess)) | |
case .failure(let error): | |
completion(.error(error)) | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment