feat(mypage): 최신 공지 배열과 제목 롤링을 적용한다
This commit is contained in:
@@ -18,7 +18,7 @@ final class MyPageViewModel: ObservableObject {
|
||||
private var pendingAuthRequest: AuthVerifyRequest?
|
||||
private var pendingAuthSuccess: (() -> Void)?
|
||||
|
||||
@Published var latestNotice: NoticeItem? = nil
|
||||
@Published var latestNotices: [NoticeItem] = []
|
||||
|
||||
@Published var nickname: String = ""
|
||||
@Published var profileUrl: String = ""
|
||||
@@ -259,8 +259,9 @@ final class MyPageViewModel: ObservableObject {
|
||||
AppState.shared.setAppStep(step: .splash)
|
||||
}
|
||||
|
||||
func getLatestNotice() {
|
||||
noticeRepository.getLatestNotice()
|
||||
func getLatestNotices() {
|
||||
noticeRepository.getLatestNotices()
|
||||
.receive(on: DispatchQueue.main)
|
||||
.sink { result in
|
||||
switch result {
|
||||
case .finished:
|
||||
@@ -270,14 +271,18 @@ final class MyPageViewModel: ObservableObject {
|
||||
}
|
||||
} receiveValue: {[unowned self] response in
|
||||
self.isLoading = false
|
||||
guard (200..<300).contains(response.statusCode) else {
|
||||
ERROR_LOG("Latest notices HTTP \(response.statusCode)")
|
||||
return
|
||||
}
|
||||
let responseData = response.data
|
||||
|
||||
do {
|
||||
let jsonDecoder = JSONDecoder()
|
||||
let decoded = try jsonDecoder.decode(ApiResponse<NoticeItem>.self, from: responseData)
|
||||
let decoded = try jsonDecoder.decode(ApiResponse<[NoticeItem]>.self, from: responseData)
|
||||
|
||||
if let data = decoded.data, decoded.success {
|
||||
self.latestNotice = data
|
||||
self.latestNotices = data
|
||||
}
|
||||
} catch {
|
||||
ERROR_LOG(error.localizedDescription)
|
||||
|
||||
Reference in New Issue
Block a user