36 lines
		
	
	
		
			993 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			993 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
//
 | 
						|
//  NotificationSettingsDialogViewModel.swift
 | 
						|
//  SodaLive
 | 
						|
//
 | 
						|
//  Created by klaus on 2023/08/11.
 | 
						|
//
 | 
						|
 | 
						|
import Foundation
 | 
						|
import Combine
 | 
						|
 | 
						|
final class NotificationSettingsDialogViewModel: ObservableObject {
 | 
						|
    
 | 
						|
    private let userRepository = UserRepository()
 | 
						|
    private var subscription = Set<AnyCancellable>()
 | 
						|
    
 | 
						|
    @Published var live = true
 | 
						|
    @Published var uploadContent = true
 | 
						|
    @Published var message = true
 | 
						|
    
 | 
						|
    func submit() {
 | 
						|
        userRepository
 | 
						|
            .updateNotificationSettings(live: live, uploadContent: uploadContent, message: message)
 | 
						|
            .sink { result in
 | 
						|
                switch result {
 | 
						|
                case .finished:
 | 
						|
                    DEBUG_LOG("finish")
 | 
						|
                case .failure(let error):
 | 
						|
                    ERROR_LOG(error.localizedDescription)
 | 
						|
                }
 | 
						|
            } receiveValue: { _ in
 | 
						|
                AppState.shared.isShowNotificationSettingsDialog = false
 | 
						|
            }
 | 
						|
            .store(in: &subscription)
 | 
						|
    }
 | 
						|
}
 |