summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadVPN/ProblemReportViewController.swift
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2021-09-15 13:03:10 +0200
committerAndrej Mihajlov <and@mullvad.net>2021-09-16 10:44:16 +0200
commit1380f3f23c666e2cf0d9fd1e65d79246e9c90864 (patch)
treeacbd5c31ab8557069ecaf950df0f8e7189334c3a /ios/MullvadVPN/ProblemReportViewController.swift
parent8eb1502af70f6496dcf4641a3f388756c61f0d83 (diff)
downloadmullvadvpn-1380f3f23c666e2cf0d9fd1e65d79246e9c90864.tar.xz
mullvadvpn-1380f3f23c666e2cf0d9fd1e65d79246e9c90864.zip
REST: refactor
Diffstat (limited to 'ios/MullvadVPN/ProblemReportViewController.swift')
-rw-r--r--ios/MullvadVPN/ProblemReportViewController.swift30
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