Skip to content

Commit 1a7fcb4

Browse files
committed
[BOOK-72] refactor: decouple NetworkRequestable from URLSession
- Removed direct conformance of URLSession to NetworkRequestable
1 parent 017f0e3 commit 1a7fcb4

2 files changed

Lines changed: 19 additions & 9 deletions

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Copyright © 2025 Booket. All rights reserved
2+
3+
import Combine
4+
import Foundation
5+
6+
final class URLSessionRequestor: NetworkRequestable {
7+
private let session: URLSession
8+
9+
init(session: URLSession = .shared) {
10+
self.session = session
11+
}
12+
13+
func data(for request: URLRequest) -> AnyPublisher<(Data, URLResponse), Error> {
14+
session.dataTaskPublisher(for: request)
15+
.map { ($0.data, $0.response) }
16+
.mapError { $0 as Error }
17+
.eraseToAnyPublisher()
18+
}
19+
}

src/Projects/BKNetwork/Sources/Interface/NetworkRequestable.swift

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,3 @@ import Foundation
66
public protocol NetworkRequestable {
77
func data(for request: URLRequest) -> AnyPublisher<(Data, URLResponse), Error>
88
}
9-
10-
extension URLSession: NetworkRequestable {
11-
public func data(for request: URLRequest) -> AnyPublisher<(Data, URLResponse), Error> {
12-
self.dataTaskPublisher(for: request)
13-
.map { ($0.data, $0.response) }
14-
.mapError { $0 as Error }
15-
.eraseToAnyPublisher()
16-
}
17-
}

0 commit comments

Comments
 (0)