Rework storage structs, link preview

This commit is contained in:
Christoph Hagen
2025-01-08 14:59:04 +01:00
parent b99c064d10
commit a7197b9628
75 changed files with 1365 additions and 1454 deletions

View File

@ -34,6 +34,7 @@ final class Storage: ObservableObject {
// MARK: Properties
#warning("Rework to make this non-optional by creating a wrapper class")
@Published
var contentScope: SecurityBookmark?
@ -72,13 +73,13 @@ final class Storage: ObservableObject {
return contentScope.write(pageContent, to: path)
}
func save(pageMetadata: PageFile, for pageId: String) -> Bool {
func save(pageMetadata: Page.Data, for pageId: String) -> Bool {
guard let contentScope else { return false }
let path = pageMetadataPath(page: pageId)
return contentScope.encode(pageMetadata, to: path)
}
func loadAllPages() -> [String : PageFile]? {
func loadAllPages() -> [String : Page.Data]? {
contentScope?.decodeJsonFiles(in: pagesFolderName)
}
@ -144,13 +145,13 @@ final class Storage: ObservableObject {
postsFolderName + "/" + postFileName(postId)
}
func save(post: PostFile, for postId: String) -> Bool {
func save(post: Post.Data, for postId: String) -> Bool {
guard let contentScope else { return false }
let path = postFilePath(post: postId)
return contentScope.encode(post, to: path)
}
func loadAllPosts() -> [String : PostFile]? {
func loadAllPosts() -> [String : Post.Data]? {
contentScope?.decodeJsonFiles(in: postsFolderName)
}
@ -183,13 +184,13 @@ final class Storage: ObservableObject {
tagsFolderName + "/" + tagFileName(tagId: tagId)
}
func save(tagMetadata: TagFile, for tagId: String) -> Bool {
func save(tagMetadata: Tag.Data, for tagId: String) -> Bool {
guard let contentScope else { return false }
let path = tagFilePath(tag: tagId)
return contentScope.encode(tagMetadata, to: path)
}
func loadAllTags() -> [String : TagFile]? {
func loadAllTags() -> [String : Tag.Data]? {
contentScope?.decodeJsonFiles(in: tagsFolderName)
}
@ -311,9 +312,9 @@ final class Storage: ObservableObject {
- Returns: A dictionary with the file ids as keys and the metadata file as a value.
*/
func loadAllFiles() -> [String : (data: FileResourceFile, isExternal: Bool)]? {
func loadAllFiles() -> [String : (data: FileResource.Data, isExternal: Bool)]? {
guard let contentScope else { return nil }
guard let list: [String : FileResourceFile] = contentScope.decodeJsonFiles(in: fileInfoFolderName) else {
guard let list: [String : FileResource.Data] = contentScope.decodeJsonFiles(in: fileInfoFolderName) else {
return nil
}
guard let existingFiles = contentScope.fileNames(inRelativeFolder: filesFolderName).map(Set.init) else {
@ -326,7 +327,7 @@ final class Storage: ObservableObject {
}
@discardableResult
func save(fileInfo: FileResourceFile, for fileId: String) -> Bool {
func save(fileInfo: FileResource.Data, for fileId: String) -> Bool {
guard let contentScope else { return false }
let path = fileInfoPath(file: fileId)
return contentScope.encode(fileInfo, to: path)
@ -359,12 +360,12 @@ final class Storage: ObservableObject {
// MARK: Settings
func loadSettings() -> SettingsFile? {
func loadSettings() -> Settings.Data? {
guard let contentScope else { return nil }
return contentScope.decode(at: settingsDataFileName)
}
func save(settings: SettingsFile) -> Bool {
func save(settings: Settings.Data) -> Bool {
guard let contentScope else { return false }
return contentScope.encode(settings, to: settingsDataFileName)
}