Skip to content

Commit

Permalink
#5 DetailView Presentataion layer
Browse files Browse the repository at this point in the history
  • Loading branch information
zzisun committed Apr 21, 2021
1 parent 60145d8 commit eb4d438
Show file tree
Hide file tree
Showing 6 changed files with 224 additions and 5 deletions.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
uuid = "17AE23A2-2CC5-4202-922C-ADBBE5D9DFDD"
type = "1"
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "59623AED-6CD9-4724-8F36-BD932F574D98"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "sidedishApp/Presentation/ViewModels/DetailViewModel.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "38"
endingLineNumber = "38"
landmarkName = "fetchData(path:path:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "A425890E-D712-4246-878C-15EF841646D3"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "sidedishApp/Presentation/ViewModels/DetailViewModel.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "40"
endingLineNumber = "40"
landmarkName = "fetchData(path:path:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "41BE7700-B3C7-4055-97FC-350738D258E1"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "sidedishApp/Data/Network/Endpoint.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "21"
endingLineNumber = "21"
landmarkName = "url"
landmarkType = "24">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "C8C167D6-523D-4C3A-A816-68DA5A7A9211"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "sidedishApp/Data/Network/NetworkManager.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "19"
endingLineNumber = "19"
landmarkName = "get(type:url:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "2C8C814C-B202-439D-A953-2DF2CD7AE384"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "sidedishApp/Data/Network/Endpoint.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "20"
endingLineNumber = "20"
landmarkName = "url"
landmarkType = "24">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "89417AB3-0CFF-484C-AA92-C3DA720837EB"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "sidedishApp/Presentation/UI/ViewControllers/DetailViewController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "34"
endingLineNumber = "34"
landmarkName = "fetchData()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "A6E27AA7-3D5D-4D0C-8731-2F7DC889FD76"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "sidedishApp/Presentation/UI/ViewControllers/DetailViewController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "42"
endingLineNumber = "42"
landmarkName = "fetchData()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "961AC2D5-B48B-4BBD-89B3-3C61E769F82C"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "sidedishApp/Presentation/ViewModels/DetailViewModel.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "30"
endingLineNumber = "30"
landmarkName = "fetchData(path:path:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "320463A9-326D-400D-8F17-DD686B6FFBEF"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "sidedishApp/Presentation/ViewModels/DetailViewModel.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "37"
endingLineNumber = "37"
landmarkName = "fetchData(path:path:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>sidedishApp.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
</dict>
</plist>
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,19 @@
//

import UIKit
import Combine

class DetailViewController: UIViewController {

private var category: String!
private var id: Int!
private var cancellables: Set<AnyCancellable> = []
private var detailViewModel: DetailViewModel!
override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
detailViewModel = DetailViewModel()
fetchData()
// detailViewModel.fetchData(path: <#T##String#>, path: <#T##Int#>)
// Do any additional setup after loading the view.
}


Expand All @@ -25,5 +31,16 @@ class DetailViewController: UIViewController {
// Pass the selected object to the new view controller.
}
*/
private func fetchData() {
detailViewModel.dataChanged
.receive(on: DispatchQueue.main)
.sink { [weak self] _ in

}
.store(in: &cancellables)
// detailViewModel.fetchData(path: self.category, path: self.id)
detailViewModel.fetchData(path: "main", path: 0)
}

}

Original file line number Diff line number Diff line change
@@ -1,8 +1,44 @@
//
// DetailViewModel.swift
// sidedishApp
// DetailApp
//
// Created by 김지선 on 2021/04/21.
// Created by zombietux on 2021/04/19.
//

import Foundation
import Combine

class DetailViewModel {
private var item = Detail()
private(set) var dataChanged = PassthroughSubject<Void, Never>()
private var cancellables = Set<AnyCancellable>()
private var detailUseCase: DetailUseCasePort!

init(detailUseCase: DetailUseCasePort) {
self.detailUseCase = detailUseCase
}

convenience init() {
let detailUseCase = DetailUseCase()
self.init(detailUseCase: detailUseCase)
}

func getDetailItem() -> Detail {
return self.item
}

func fetchData(path category: String, path id: Int) {
detailUseCase.getItem(path: category, path: id)
.receive(on: DispatchQueue.global())
.sink(receiveCompletion: { (result)
in switch result {
case .finished: break
case .failure(let error): print(error.localizedDescription) } },
receiveValue: { item in
self.item = item
dump(self.item)
self.dataChanged.send()
})
.store(in: &cancellables)
}
}

0 comments on commit eb4d438

Please sign in to comment.