X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/53b27422d140022594fc241cca91c3183be57bca..48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff:/iOS/WolneLektury/Model/Realm/RLMApplication.swift diff --git a/iOS/WolneLektury/Model/Realm/RLMApplication.swift b/iOS/WolneLektury/Model/Realm/RLMApplication.swift new file mode 100644 index 0000000..e0f436f --- /dev/null +++ b/iOS/WolneLektury/Model/Realm/RLMApplication.swift @@ -0,0 +1,103 @@ +// +// RLMApplication.swift +// WolneLektury +// +// Created by Pawel Dabrowski on 24/08/2018. +// Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved. +// + +import UIKit +import RealmSwift + +class RLMApplication: Object { + + @objc dynamic var user: RLMUser? + var downloadedBooks = List() + @objc dynamic var premium: Bool = false + + + func updateUser(usernameModel: UsernameModel?){ + let realm = try! Realm() + + if let usernameModel = usernameModel{ + try! realm.write { + let usr = RLMUser() + usr.username = usernameModel.username + usr.premium = usernameModel.premium + self.user = usr + } + } + else { + if user != nil { + try! realm.write { + realm.delete( user!) + self.user = nil + } + } + } + } + + func addBookToDownloaded(bookDetailsModel: BookDetailsModel){ + let realm = try! Realm() + realm.beginWrite() + + var bookExists = false + if let b = getBookFromDownloaded(bookSlug: bookDetailsModel.slug) { + bookDetailsModel.currentChapter = b.currentChapter + bookDetailsModel.totalChapters = b.totalChapters + bookDetailsModel.currentAudioChapter = b.currentAudioChapter + bookDetailsModel.totalAudioChapters = b.totalAudioChapters + + bookDetailsModel.authors = b.authors + bookDetailsModel.epochs = b.epochs + bookDetailsModel.genres = b.genres + bookDetailsModel.kinds = b.kinds + bookDetailsModel.media = b.media + + bookExists = true + } + + realm.add(bookDetailsModel, update: true) + if !bookExists{ + self.downloadedBooks.append(bookDetailsModel) + } + try! realm.commitWrite() + } + + func removeAllBooksFromDownloaded() { + + guard downloadedBooks.count > 0 else { return } + + let realm = try! Realm() + realm.beginWrite() + realm.delete(downloadedBooks) + try! realm.commitWrite() + } + + func removeBookFromDownloaded(bookSlug: String) -> Bool { + + let books = downloadedBooks.filter({$0.slug == bookSlug}) + + if books.count > 0 { + let realm = try! Realm() + realm.beginWrite() + realm.delete(books) + try! realm.commitWrite() + return true + } + return false + } + + func getBookFromDownloaded(bookSlug: String) -> BookDetailsModel? { + return downloadedBooks.first(where: {$0.slug == bookSlug}) + } + + func setUserPermium() { + guard let user = user else { return } + + let realm = try! Realm() + realm.beginWrite() + user.premium = true + try! realm.commitWrite() + } +}