Skip to content

Commit

Permalink
๐Ÿ› ๏ธ :: QnaEntity ๊ฐ€์ ธ์˜ค๋Š” ๋กœ์ง ์ˆ˜์ •
Browse files Browse the repository at this point in the history
  • Loading branch information
ray3238 committed Jun 20, 2024
1 parent 80c1dc2 commit ee2cfd0
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 15 deletions.
4 changes: 2 additions & 2 deletions Projects/Flow/Sources/MyPage/Review/WritableReviewFlow.swift
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ private extension WritableReviewFlow {
view?.dismiss = { question, answer, techCode in
self.rootViewController.viewModel.techCode = techCode.code
self.rootViewController.viewModel.interviewReviewInfo.accept(
[QnaEntity(
QnaEntity(
question: question,
answer: answer,
area: techCode.keyword
)]
)
)
}
self.rootViewController.present(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ final class QuestionListDetailView: BaseView {
}

func configureView(model: QnaEntity) {
super.configureView()
super.configureView()
questionLabel.text = model.question
codeLabel.text = model.area
answerLabel.text = model.answer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,15 @@ public final class WritableReviewViewController: BaseViewController<WritableRevi

let output = viewModel.transform(input)

output.interviewReviewInfo.asObservable()
output.qnaInfoList.asObservable()
.bind(onNext: {
self.emptyQuestionListView.isHidden = !$0.isEmpty
self.questionListDetailStackView.setFieldType($0)
})
.disposed(by: disposeBag)

output.interviewReviewInfoList.asObservable()
.bind(onNext: {
self.emptyQuestionListView.isHidden = !$0.isEmpty
if !$0.isEmpty {
self.showJobisToast(text: "์งˆ๋ฌธ์ด ์ถ”๊ฐ€๋˜์—ˆ์–ด์š”!", inset: 92)
self.writableReviewButton.isEnabled = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ public final class WritableReviewViewModel: BaseViewModel, Stepper {
private let disposeBag = DisposeBag()
public var companyID = 0
private let postReviewUseCase: PostReviewUseCase
public var interviewReviewInfo = BehaviorRelay<[QnaEntity]>(value: [])
public var interviewReviewInfoList: [QnaElementRequestQuery] = []
public var interviewReviewInfo = PublishRelay<QnaEntity>()
public var qnaInfoList = PublishRelay<[QnaEntity]>()
public var interviewReviewInfoList = BehaviorRelay<[QnaElementRequestQuery]>(value: [])
public var techCode: Int?

init(
Expand All @@ -27,7 +28,8 @@ public final class WritableReviewViewModel: BaseViewModel, Stepper {
}

public struct Output {
let interviewReviewInfo: BehaviorRelay<[QnaEntity]>
let interviewReviewInfoList: BehaviorRelay<[QnaElementRequestQuery]>
let qnaInfoList: PublishRelay<[QnaEntity]>
}

public func transform(_ input: Input) -> Output {
Expand All @@ -39,29 +41,33 @@ public final class WritableReviewViewModel: BaseViewModel, Stepper {
.disposed(by: disposeBag)

self.interviewReviewInfo.asObservable()
.subscribe(onNext: { data in
data.forEach { qnaEntity in
self.interviewReviewInfoList.append(QnaElementRequestQuery(
.subscribe(onNext: { qnaEntity in
self.qnaInfoList.accept([qnaEntity])
var value = self.interviewReviewInfoList.value
value.append(
QnaElementRequestQuery(
question: qnaEntity.question,
answer: qnaEntity.answer,
codeID: self.techCode ?? 0
))
}
)
)
self.interviewReviewInfoList.accept(value)
})
.disposed(by: disposeBag)

input.writableReviewButtonDidTap.asObservable()
.flatMap {
self.postReviewUseCase.execute(req: PostReviewRequestQuery(
companyID: self.companyID,
qnaElements: self.interviewReviewInfoList
qnaElements: self.interviewReviewInfoList.value
))
}
.subscribe()
.disposed(by: disposeBag)

return Output(
interviewReviewInfo: interviewReviewInfo
interviewReviewInfoList: interviewReviewInfoList,
qnaInfoList: self.qnaInfoList
)
}
}

0 comments on commit ee2cfd0

Please sign in to comment.