@@ -12,25 +12,24 @@ import Foundation
12
12
import NetworkPlatform
13
13
import PersistentPlatform
14
14
15
- public struct AppClient {
16
- public var prepare : ( ( ) ) async -> Void
17
- public var save : @Sendable ( _ request: Domain . Product ) async throws -> Void
18
- public var product : @Sendable ( _ request: Int ) async throws -> Domain . Product ?
19
- }
15
+ struct AppClient {
16
+ var getProduct : any ProductUseCaseType
17
+ var saveProduct : any SaveProductUseCaseType
18
+ var prepareCoreData : any PrepareCoreDataUseCaseType
20
19
21
- extension AppClient {
22
- private init (
23
- _ prepare : PrepareCoreDataUseCase , productUseCase : ProductUseCase ,
24
- saveProduct : SaveProductUseCase
20
+ init (
21
+ _ prepare : PrepareCoreDataUseCase ,
22
+ getProductUseCase : ProductUseCase ,
23
+ saveProductUseCase : SaveProductUseCase
25
24
) {
26
- self . prepare = prepare. execute ( input : )
27
- self . save = saveProduct . execute ( input : )
28
- self . product = productUseCase . execute ( input : )
25
+ self . prepareCoreData = prepare
26
+ self . getProduct = getProductUseCase
27
+ self . saveProduct = saveProductUseCase
29
28
}
30
29
}
31
30
32
31
extension DependencyValues {
33
- public var appClient : AppClient {
32
+ var appClient : AppClient {
34
33
get { self [ AppClient . self] }
35
34
set { self [ AppClient . self] = newValue }
36
35
}
@@ -39,17 +38,17 @@ extension DependencyValues {
39
38
extension AppClient : DependencyKey {
40
39
public static var liveValue = AppClient (
41
40
PrepareCoreDataUseCase ( repository: PreparePersistentRepository . live) ,
42
- productUseCase : ProductUseCase ( repository: RemoteProductRepository . live) ,
43
- saveProduct : SaveProductUseCase (
41
+ getProductUseCase : ProductUseCase ( repository: RemoteProductRepository . live) ,
42
+ saveProductUseCase : SaveProductUseCase (
44
43
repository: PersistentProductRepository . live) )
45
44
public static var testValue = AppClient (
46
45
PrepareCoreDataUseCase ( repository: PreparePersistentRepository . live) ,
47
- productUseCase : ProductUseCase ( repository: RemoteProductRepository . stubbed) ,
48
- saveProduct : SaveProductUseCase (
46
+ getProductUseCase : ProductUseCase ( repository: RemoteProductRepository . stubbed) ,
47
+ saveProductUseCase : SaveProductUseCase (
49
48
repository: PersistentProductRepository . live) )
50
49
public static var previewValue = AppClient (
51
50
PrepareCoreDataUseCase ( repository: PreparePersistentRepository . live) ,
52
- productUseCase : ProductUseCase ( repository: RemoteProductRepository . stubbed) ,
53
- saveProduct : SaveProductUseCase (
51
+ getProductUseCase : ProductUseCase ( repository: RemoteProductRepository . stubbed) ,
52
+ saveProductUseCase : SaveProductUseCase (
54
53
repository: PersistentProductRepository . live) )
55
54
}
0 commit comments