Skip to content
This repository was archived by the owner on Sep 20, 2023. It is now read-only.

Thread error descriptions to Squawk throughout app #2286

Merged
merged 1 commit into from
Oct 14, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Classes/Image Upload/ImageUploadTableViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,8 @@ class ImageUploadTableViewController: UITableViewController {
description: "") { [weak self] result in

switch result {
case .error:
Squawk.showGenericError()
case .error(let error):
Squawk.show(error: error)
self?.setRightBarItemIdle()

case .success(let link):
Expand Down
4 changes: 2 additions & 2 deletions Classes/Issues/AddCommentClient.swift
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ final class AddCommentClient {
viewerCanDelete: fragments.deletableFields.viewerCanDelete
)
}
case .failure:
case .failure(let error):
for listener in self.listeners {
listener.listener?.didFailSendingComment(client: self, subjectId: subjectId, body: body)
}
Squawk.showGenericError()
Squawk.show(error: error)
}
}
}
Expand Down
9 changes: 4 additions & 5 deletions Classes/Issues/Comments/IssueCommentSectionController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -261,11 +261,10 @@ final class IssueCommentSectionController:
commentID: "\(number)")
) { [weak self] result in
switch result {
case .failure:
case .failure(let error):
self?.hasBeenDeleted = false
self?.update(animated: trueUnlessReduceMotionEnabled)

Squawk.showGenericError()
Squawk.show(error: error)
case .success: break // Don't need to handle success since updated optimistically
}
}
Expand Down Expand Up @@ -297,9 +296,9 @@ final class IssueCommentSectionController:
) { [weak self] result in
switch result {
case .success: break
case .failure:
case .failure(let error):
self?.edit(markdown: originalMarkdown)
Squawk.showGenericError()
Squawk.show(error: error)
}
}
}
Expand Down
9 changes: 3 additions & 6 deletions Classes/Issues/EditComment/EditCommentViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,9 @@ MessageTextViewListener {
) { [weak self] result in
switch result {
case .success: self?.didSave(markdown: markdown)
case .failure: self?.error()
case .failure(let error):
self?.setRightBarItemIdle()
Squawk.show(error: error)
}
}
}
Expand All @@ -183,11 +185,6 @@ MessageTextViewListener {
delegate?.didEditComment(viewController: self, markdown: markdown)
}

func error() {
setRightBarItemIdle()
Squawk.showGenericError()
}

// MARK: MessageTextViewListener

func didChange(textView: MessageTextView) {
Expand Down
36 changes: 16 additions & 20 deletions Classes/Issues/GithubClient+Issues.swift
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@ extension GithubClient {

client.query(query, result: { $0.repository }) { result in
switch result {
case .failure:
completion(.error(nil))
Squawk.showGenericError()
case .failure(let error):
completion(.error(error))
Squawk.show(error: error)
case .success(let repository):
let issueOrPullRequest = repository.issueOrPullRequest
guard let issueType: IssueType = issueOrPullRequest?.asIssue ?? issueOrPullRequest?.asPullRequest else {
Expand Down Expand Up @@ -193,13 +193,9 @@ extension GithubClient {
switch result {
case .success(let data):
completion(createIssueReactions(reactions: data))
case .failure(let err):
case .failure(let error):
completion(nil)
if let message = err?.localizedDescription {
Squawk.showError(message: message)
} else {
Squawk.showGenericError()
}
Squawk.show(error: error)
}
}

Expand Down Expand Up @@ -252,9 +248,9 @@ extension GithubClient {
client.send(V3SetIssueStatusRequest(owner: owner, repo: repo, number: number, state: stateString)) { result in
switch result {
case .success: break
case .failure:
case .failure(let error):
cache.set(value: previous)
Squawk.showGenericError()
Squawk.show(error: error)
}
}
}
Expand Down Expand Up @@ -294,10 +290,10 @@ extension GithubClient {
switch result {
case .success:
completion?(.success(true))
case .failure:
case .failure(let error):
cache.set(value: previous)
Squawk.showGenericError()
completion?(.error(nil))
Squawk.show(error: error)
completion?(.error(error))
}
}
}
Expand Down Expand Up @@ -405,9 +401,9 @@ extension GithubClient {
) { result in
switch result {
case .success: break
case .failure:
case .failure(let error):
cache.set(value: previous)
Squawk.showGenericError()
Squawk.show(error: error)
}
}
}
Expand Down Expand Up @@ -503,9 +499,9 @@ extension GithubClient {
) { result in
switch result {
case .success: break
case .failure:
case .failure(let error):
cache.set(value: previous)
Squawk.showGenericError()
Squawk.show(error: error)
}
}
}
Expand All @@ -523,9 +519,9 @@ extension GithubClient {
) { result in
switch result {
case .success: break
case .failure:
case .failure(let error):
cache.set(value: previous)
Squawk.showGenericError()
Squawk.show(error: error)
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/Issues/IssuesViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -304,8 +304,8 @@ final class IssuesViewController:
}
// avoid finishLoading() so empty view doesn't appear
self?.feed.adapter.performUpdates(animated: trueUnlessReduceMotionEnabled)
case .error:
Squawk.showGenericError()
case .error(let error):
Squawk.show(error: error)
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/Issues/Merge/GithubClient+Merge.swift
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ extension GithubClient {
switch result {
case .success:
cache.set(value: optimisticResult)
case .failure:
Squawk.showGenericError()
case .failure(let err):
Squawk.show(error: err)
error()
}
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/Labels/LabelsViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ final class LabelsViewController: BaseListViewController2<String>, BaseListViewC
return RepositoryLabel(color: node.color, name: node.name)
}.sorted { $0.name < $1.name }
self?.update(animated: true)
case .failure:
Squawk.showGenericError()
case .failure(let error):
Squawk.show(error: error)
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/Milestones/GithubClient+Milestones.swift
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,9 @@ extension GithubClient {
) { result in
switch result {
case .success: break
case .failure:
case .failure(let error):
cache.set(value: previous)
Squawk.showGenericError()
Squawk.show(error: error)
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/Milestones/MilestonesViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ MilestoneSectionControllerDelegate {
switch result {
case .success(let milestones):
self?.milestones = milestones
case .error:
Squawk.showGenericError()
case .error(let error):
Squawk.show(error: error)
}
self?.update(animated: true)
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/New Issue/NewIssueTableViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,8 @@ final class NewIssueTableViewController: UITableViewController, UITextFieldDeleg
strongSelf.dismiss(animated: trueUnlessReduceMotionEnabled, completion: {
delegate?.didDismissAfterCreatingIssue(model: model)
})
case .failure:
Squawk.showGenericError()
case .failure(let error):
Squawk.show(error: error)
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/Notifications/NotificationSectionController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ final class NotificationSectionController: ListSwiftSectionController<Notificati
repo: model.repo,
release: response.data.tagName
)
case .failure:
Squawk.showGenericError()
case .failure(let error):
Squawk.show(error: error)
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/Notifications/NotificationsViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,9 @@ BaseListViewController2EmptyDataSource
ids.append($0.id)
}
rebuildAndUpdate(ids: ids, append: append, page: next, animated: animated)
case .error:
case .error(let err):
error(animated: trueUnlessReduceMotionEnabled)
Squawk.showNetworkError()
Squawk.show(error: err)
}

// set after updating so self.models has already been changed
Expand Down
4 changes: 2 additions & 2 deletions Classes/People/PeopleViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,8 @@ PeopleSectionControllerDelegate {
nextPage = nil
}
self?.update(page: nextPage, animated: true)
case .failure:
Squawk.showGenericError()
case .failure(let error):
Squawk.show(error: error)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ extension GithubClient {
client.send(V3PullRequestCommentsRequest(owner: owner, repo: repo, number: number)) { result in
switch result {
case .failure(let error):
Squawk.showGenericError()
Squawk.show(error: error)
completion(.error(error))
case .success(let response):
struct Thread {
Expand Down Expand Up @@ -144,7 +144,7 @@ extension GithubClient {
completion(.error(nil))
}
case .failure(let error):
Squawk.showGenericError()
Squawk.show(error: error)
completion(.error(error))
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,8 @@ final class PullRequestReviewCommentsViewController: MessageViewController,
width: insetWidth
) { [weak self] (result) in
switch result {
case .error: Squawk.showGenericError()
case .error(let error):
Squawk.show(error: error)
case .success(let models):
self?.results = models
self?.feed.finishLoading(dismissRefresh: true, animated: true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,8 @@ RepositoryBranchSectionControllerDelegate
branches: branches
)

case .error:
Squawk.showError(message: "Couldn't fetch repository branches")
case .error(let error):
Squawk.show(error: error)
}
self?.update(animated: true)
}
Expand Down
6 changes: 3 additions & 3 deletions Classes/Repository/RepositoryClient.swift
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,9 @@ final class RepositoryClient {
let contentSizeCategory = UIContentSizeCategory.preferred
githubClient.client.query(query, result: { $0 }) { result in
switch result {
case .failure:
Squawk.showGenericError()
completion(.error(nil))
case .failure(let error):
Squawk.show(error: error)
completion(.error(error))
case .success(let data):
DispatchQueue.global().async {
// jump to a bg queue to parse models and presize text
Expand Down
4 changes: 2 additions & 2 deletions Classes/Repository/RepositoryCodeBlobViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -147,9 +147,9 @@ final class RepositoryCodeBlobViewController: UIViewController, EmptyViewDelegat
self?.handle(text: text)
case .nonUTF8:
self?.error(cannotLoad: true)
case .error:
case .error(let error):
self?.error(cannotLoad: false)
Squawk.showGenericError()
Squawk.show(error: error)
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Classes/Search/GithubClient+Search.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ extension GithubClient {
case .failure(let error):
completion(.error(error))
if !isCancellationError(error) {
Squawk.showGenericError()
Squawk.show(error: error)
}
case .success(let data):
DispatchQueue.global().async {
Expand Down
4 changes: 2 additions & 2 deletions Classes/Systems/Autocomplete/IssueAutocomplete.swift
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ final class IssueAutocomplete: AutocompleteType {
result: { $0 }
) { [weak self] result in
switch result {
case .failure:
Squawk.showGenericError()
case .failure(let error):
Squawk.show(error: error)
completion(false)
case .success(let data):
guard let strongSelf = self else { return }
Expand Down
7 changes: 7 additions & 0 deletions Classes/Systems/Squawk+GitHawk.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,13 @@ extension Squawk {
triggerHaptic()
}

static func show(error: Error?, view: UIView? = window) {
let text = error?.localizedDescription
?? NSLocalizedString("Something went wrong.", comment: "")
Squawk.shared.show(in: view, config: errorConfig(text: text))
triggerHaptic()
}

static func showPermissionsError(view: UIView? = window) {
Squawk.shared.show(in: view, config: errorConfig(text: NSLocalizedString("You must request access.", comment: "")))
triggerHaptic()
Expand Down
4 changes: 2 additions & 2 deletions Classes/Views/ShowErrorStatusBar.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import Squawk
func ShowErrorStatusBar(graphQLErrors: [Error]?, networkError: Error?) {
if networkError != nil {
Squawk.showNetworkError()
} else if graphQLErrors != nil && graphQLErrors!.count > 0 {
Squawk.showGenericError()
} else if let graphQL = graphQLErrors?.first {
Squawk.show(error: graphQL)
}
}