Newer
Older
bremer-ios-app / BremerApp / ViewModel / SettingViewModel.swift
yhornisse on 10 Sep 2023 1 KB Initial Commit
//
//  SettingViewModel.swift
//  Bremer
//
//  Created by yhornisse on 2023/08/26.
//

import Foundation
import RealmSwift

class BremerSetting: Object {
    @objc dynamic var id = 0
    @objc dynamic var baseUrl = ""
    override static func primaryKey() -> String? {
        return "id"
    }
    func baseApiUrl() -> String {
        return "\(baseUrl)/api"
    }
}

public class SettingViewModel : ObservableObject {
    let realm = try! Realm()

    func updateBaseApiUrl(_ baseApiUrl: String) {
        let setting = BremerSetting()
        setting.baseUrl = baseApiUrl
        let results = realm.objects(BremerSetting.self)
        try! realm.write {
            if results.isEmpty {
                realm.add(setting)
            } else {
                realm.add(setting, update: .modified)
            }
        }
    }
    
    func getSetting() -> BremerSetting {
        let results = realm.objects(BremerSetting.self)
        if results.isEmpty {
            return BremerSetting()
        } else {
            return results[0]
        }
    }
}