diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2021-09-15 13:03:10 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2021-09-16 10:44:16 +0200 |
| commit | 1380f3f23c666e2cf0d9fd1e65d79246e9c90864 (patch) | |
| tree | acbd5c31ab8557069ecaf950df0f8e7189334c3a /ios/MullvadVPN/ProblemReportViewController.swift | |
| parent | 8eb1502af70f6496dcf4641a3f388756c61f0d83 (diff) | |
| download | mullvadvpn-1380f3f23c666e2cf0d9fd1e65d79246e9c90864.tar.xz mullvadvpn-1380f3f23c666e2cf0d9fd1e65d79246e9c90864.zip | |
REST: refactor
Diffstat (limited to 'ios/MullvadVPN/ProblemReportViewController.swift')
| -rw-r--r-- | ios/MullvadVPN/ProblemReportViewController.swift | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/ios/MullvadVPN/ProblemReportViewController.swift b/ios/MullvadVPN/ProblemReportViewController.swift index cd6ec4a490..433b5f8085 100644 --- a/ios/MullvadVPN/ProblemReportViewController.swift +++ b/ios/MullvadVPN/ProblemReportViewController.swift @@ -13,7 +13,6 @@ class ProblemReportViewController: UIViewController, UITextFieldDelegate, Condit private var textViewKeyboardResponder: AutomaticKeyboardResponder? private var scrollViewKeyboardResponder: AutomaticKeyboardResponder? - private let mullvadRest = MullvadRest() private lazy var consolidatedLog: ConsolidatedApplicationLog = { let securityGroupIdentifier = ApplicationConfiguration.securityGroupIdentifier @@ -565,7 +564,7 @@ class ProblemReportViewController: UIViewController, UITextFieldDelegate, Condit navigationItem.setHidesBackButton(true, animated: true) } - private func didSendProblemReport(viewModel: ViewModel, result: Result<(), RestError>) { + private func didSendProblemReport(viewModel: ViewModel, result: Result<(), REST.Error>) { switch result { case .success: submissionOverlayView.state = .sent(viewModel.email) @@ -585,31 +584,20 @@ class ProblemReportViewController: UIViewController, UITextFieldDelegate, Condit private func sendProblemReport() { let viewModel = Self.persistentViewModel - willSendProblemReport() - sendProblemReportHelper(with: viewModel) { [weak self] (result) in - self?.didSendProblemReport(viewModel: viewModel, result: result) - } - } - - private func sendProblemReportHelper(with viewModel: ViewModel, completion: @escaping (Result<(), RestError>) -> Void) { let log = consolidatedLog.string let metadata = consolidatedLog.metadata.reduce(into: [:]) { (output, entry) in output[entry.key.rawValue] = entry.value } - let request = ProblemReportRequest(address: viewModel.email, message: viewModel.message, log: log, metadata: metadata) - let result = mullvadRest.sendProblemReport().dataTask(payload: request) { (result) in - DispatchQueue.main.async { - completion(result) - } - } + let request = REST.ProblemReportRequest(address: viewModel.email, message: viewModel.message, log: log, metadata: metadata) - switch result { - case .success(let task): - task.resume() - case .failure(let error): - completion(.failure(error)) - } + willSendProblemReport() + + REST.Client.shared.sendProblemReport(request) + .receive(on: .main) + .observe { completion in + self.didSendProblemReport(viewModel: viewModel, result: completion.unwrappedValue!) + } } // MARK: - Input fields' notifications |
