@@ -9,12 +9,16 @@ import UIKit
9
9
10
10
import EATSSUKit
11
11
12
+ import RxSwift
13
+
12
14
/// 마커의 상세 정보를 표시하는 Modal View Controller
13
15
class MarkerDetailViewController : BaseViewController {
14
16
// MARK: - Properties
15
17
16
18
private let markerDetailView = MarkerDetailView ( )
17
19
private let markerData : MarkerData
20
+ private let partnershipService = PartnershipService ( )
21
+ private let disposeBag = DisposeBag ( )
18
22
19
23
// MARK: - Initialization
20
24
@@ -35,23 +39,59 @@ class MarkerDetailViewController: BaseViewController {
35
39
// MARK: - Life Cycle
36
40
37
41
override func loadView( ) {
38
- markerDetailView. titleLabel. text = markerData. title
39
- markerDetailView. categoryLabel. text = " 테스트 "
40
- markerDetailView. partnershipPeriodLabel. text = " 테스트 기간 "
41
- markerDetailView. explanatonLabel. text = markerData. description
42
- markerDetailView. businessStatusLabel. text = " 영업기간 테스트 "
43
42
view = markerDetailView
44
43
}
45
44
46
45
override func viewDidLoad( ) {
47
46
super. viewDidLoad ( )
48
47
}
49
48
49
+ override func viewWillAppear( _: Bool ) {
50
+ fetchPartnershipDetail ( partnershipId: markerData. id)
51
+ }
52
+
50
53
override func configureUI( ) {
51
- // loadView 메소드를 사용해서 불필요한 코드라고 생각함. 다만 loadView 메소드 자체를 잘 사용하지 않아서, 어떤 방법을 채택할 지 고민을 해야 할 듯 함.
54
+ // TODO: loadView 메소드를 사용해서 불필요한 코드라고 생각함. 다만 loadView 메소드 자체를 잘 사용하지 않아서, 어떤 방법을 채택할 지 고민을 해야 할 듯 함.
52
55
}
53
56
54
57
override func setLayout( ) {
55
58
//
56
59
}
57
60
}
61
+
62
+ private extension MarkerDetailViewController {
63
+ func fetchPartnershipDetail( partnershipId: Int ) {
64
+ partnershipService. fetchPartnershipDetail ( partnershipId: partnershipId)
65
+ . subscribe (
66
+ onSuccess: { [ weak self] response in
67
+ #if DEBUG
68
+ // JSON 응답 출력
69
+ print ( " \n 🔍 [FetchPartnershipDetail Service] Response Details: " )
70
+ if let jsonData = try ? JSONEncoder ( ) . encode ( response) ,
71
+ let prettyJSON = JSONPrettyPrinter . prettyPrintedJSONString ( from: jsonData)
72
+ {
73
+ print ( " \n 📦 Response Data Structure: " )
74
+ print ( prettyJSON)
75
+ } else {
76
+ print ( " ⚠️ JSON 변환 실패 " )
77
+ }
78
+ print ( " \n " + String( repeating: " - " , count: 50 ) + " \n " )
79
+ #endif
80
+
81
+ self ? . markerDetailView. titleLabel. text = response. result. storeName
82
+ self ? . markerDetailView. categoryLabel. text = response. result. restaurantType
83
+ self ? . markerDetailView. partnershipPeriodLabel. text
84
+ = " \( response. result. startDate) ~ \( response. result. endDate) "
85
+ self ? . markerDetailView. explanatonLabel. text = response. result. description
86
+ } ,
87
+ onFailure: { error in
88
+ #if DEBUG
89
+ print ( " 문제가 발생했습니다 : \( error. localizedDescription) " )
90
+ #endif
91
+ AlertControllerHelper
92
+ . showConfirmOnlyAlert ( title: " 문제가 발생했습니다 " , message: " 다시 시도하세요 " , in: self )
93
+ }
94
+ )
95
+ . disposed ( by: disposeBag)
96
+ }
97
+ }
0 commit comments