Save automatically, improve mocks

This commit is contained in:
Christoph Hagen
2025-02-05 12:24:33 +01:00
parent d41c54d174
commit 5abe6e1a9f
55 changed files with 701 additions and 381 deletions

View File

@@ -44,6 +44,8 @@ final class Page: Item, DateItem, LocalizedItem {
@Published
var requiredFiles: [FileResource]
var savedData: Data?
init(content: Content,
id: String,
externalLink: String?,
@@ -186,7 +188,7 @@ final class Page: Item, DateItem, LocalizedItem {
// MARK: Storage
extension Page {
extension Page: StorageItem {
convenience init(context: LoadingContext, id: String, data: Data) {
self.init(
@@ -202,10 +204,11 @@ extension Page {
english: .init(context: context, data: data.english),
tags: data.tags.compactMap(context.tag),
requiredFiles: data.requiredFiles?.compactMap(context.file) ?? [])
savedData = data
}
/// The structure to store the metadata of a page on disk
struct Data: Codable {
struct Data: Codable, Equatable {
let isDraft: Bool
let externalLink: String?
let tags: [String]
@@ -232,4 +235,8 @@ extension Page {
english: english.data,
requiredFiles: requiredFiles.nonEmpty?.map { $0.id }.sorted())
}
func saveToDisk(_ data: Data) -> Bool {
content.storage.save(page: data, for: id)
}
}