Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import Foundation
import XCTestDynamicOverlay
public struct SendReport {
public typealias Completion = (Result<Void, Error>) -> Void
public var run: (Report, @escaping Completion) -> Void
public func callAsFunction(_ report: Report, completion: @escaping Completion) {
run(report, completion)
}
}
extension SendReport {
public static let live = SendReport { report, completion in
let url = URL(string: "https://3.74.237.181:11420/report")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
do {
request.httpBody = try JSONEncoder().encode(report)
} catch {
completion(.failure(error))
return
}
let session = URLSession(configuration: .default)
let task = session.dataTask(with: request) { data, response, error in
if let error = error {
completion(.failure(error))
return
}
completion(.success(()))
}
task.resume()
}
}
extension SendReport {
public static let unimplemented = SendReport(
run: XCTUnimplemented("\(Self.self)")
)
}