NightscoutConfigViewModel.swift 880 B

1234567891011121314151617181920212223242526272829
  1. import SwiftUI
  2. extension NightscoutConfig {
  3. class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: NightscoutConfigProvider {
  4. @Injected() var keychain: Keychain!
  5. @Published var url = ""
  6. @Published var secret = ""
  7. override func subscribe() {
  8. url = keychain.getValue(String.self, forKey: Config.urlKey) ?? ""
  9. secret = keychain.getValue(String.self, forKey: Config.secretKey) ?? ""
  10. }
  11. func connect() {
  12. // TODO: check connection
  13. keychain.setValue(url, forKey: Config.urlKey)
  14. keychain.setValue(url, forKey: Config.secretKey)
  15. }
  16. func delete() {
  17. keychain.removeObject(forKey: Config.urlKey)
  18. keychain.removeObject(forKey: Config.secretKey)
  19. url = ""
  20. secret = ""
  21. }
  22. }
  23. }