diff --git a/apple/OmnivoreKit/Sources/Models/CoreData/CoreDataModel.xcdatamodeld/CoreDataModel.xcdatamodel/contents b/apple/OmnivoreKit/Sources/Models/CoreData/CoreDataModel.xcdatamodeld/CoreDataModel.xcdatamodel/contents index 3b0ea0639..63bdc0cd9 100644 --- a/apple/OmnivoreKit/Sources/Models/CoreData/CoreDataModel.xcdatamodeld/CoreDataModel.xcdatamodel/contents +++ b/apple/OmnivoreKit/Sources/Models/CoreData/CoreDataModel.xcdatamodeld/CoreDataModel.xcdatamodel/contents @@ -43,6 +43,7 @@ + @@ -88,7 +89,7 @@ - + diff --git a/apple/OmnivoreKit/Sources/Models/DataModels/FeedItem.swift b/apple/OmnivoreKit/Sources/Models/DataModels/FeedItem.swift index 934e545c5..30935ec9a 100644 --- a/apple/OmnivoreKit/Sources/Models/DataModels/FeedItem.swift +++ b/apple/OmnivoreKit/Sources/Models/DataModels/FeedItem.swift @@ -16,6 +16,7 @@ public struct JSONArticle: Decodable { public let id: String public let title: String public let createdAt: Date + public let updatedAt: Date public let savedAt: Date public let image: String public let readingProgressPercent: Double @@ -116,6 +117,7 @@ public extension LinkedItem { } guard context.hasChanges else { return } + self.updatedAt = Date() do { try context.save() diff --git a/apple/OmnivoreKit/Sources/Models/LinkedItemSort.swift b/apple/OmnivoreKit/Sources/Models/LinkedItemSort.swift index d03f3e380..ba0919203 100644 --- a/apple/OmnivoreKit/Sources/Models/LinkedItemSort.swift +++ b/apple/OmnivoreKit/Sources/Models/LinkedItemSort.swift @@ -3,9 +3,9 @@ import Foundation public enum LinkedItemSort: String, CaseIterable { case newest case oldest - case recentlyRead + // case recentlyRead case recentlyPublished - case relevance +// case relevance } public extension LinkedItemSort { @@ -15,12 +15,12 @@ public extension LinkedItemSort { return "Newest" case .oldest: return "Oldest" - case .recentlyRead: - return "Recently Read" +// case .recentlyRead: +// return "Recently Read" case .recentlyPublished: return "Recently Published" - case .relevance: - return "Relevance" +// case .relevance: +// return "Relevance" } } @@ -30,23 +30,23 @@ public extension LinkedItemSort { return "sort:saved" case .oldest: return "sort:saved-ASC" - case .recentlyRead: - return "sort:updated" +// case .recentlyRead: +// return "sort:updated" case .recentlyPublished: return "sort:published" - case .relevance: - return "relevance" +// case .relevance: +// return "relevance" } } var sortDescriptors: [NSSortDescriptor] { switch self { - case .newest, .relevance: + case .newest /* , .relevance */: return [NSSortDescriptor(keyPath: \LinkedItem.createdAt, ascending: false)] case .oldest: return [NSSortDescriptor(keyPath: \LinkedItem.createdAt, ascending: true)] - case .recentlyRead: - return [NSSortDescriptor(keyPath: \LinkedItem.savedAt, ascending: false)] +// case .recentlyRead: +// return [NSSortDescriptor(keyPath: \LinkedItem.updatedAt, ascending: false)] case .recentlyPublished: return [NSSortDescriptor(keyPath: \LinkedItem.publishDate, ascending: false)] } diff --git a/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift b/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift index b322a4f73..89da84ecd 100644 --- a/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift +++ b/apple/OmnivoreKit/Sources/Services/DataService/Queries/ArticleContentQuery.swift @@ -100,6 +100,7 @@ extension DataService { title: try $0.title(), createdAt: try $0.createdAt().value ?? Date(), savedAt: try $0.savedAt().value ?? Date(), + updatedAt: try $0.updatedAt().value ?? Date(), readingProgress: try $0.readingProgressPercent(), readingProgressAnchor: try $0.readingProgressAnchorIndex(), imageURLString: try $0.image(), diff --git a/apple/OmnivoreKit/Sources/Services/DataService/Queries/LibraryItemsQuery.swift b/apple/OmnivoreKit/Sources/Services/DataService/Queries/LibraryItemsQuery.swift index e14118f9c..6d2acdf74 100644 --- a/apple/OmnivoreKit/Sources/Services/DataService/Queries/LibraryItemsQuery.swift +++ b/apple/OmnivoreKit/Sources/Services/DataService/Queries/LibraryItemsQuery.swift @@ -97,6 +97,7 @@ public extension DataService { title: try $0.title(), createdAt: try $0.createdAt().value ?? Date(), savedAt: try $0.savedAt().value ?? Date(), + updatedAt: try $0.updatedAt().value ?? Date(), readingProgress: try $0.readingProgressPercent(), readingProgressAnchor: try $0.readingProgressAnchorIndex(), imageURLString: try $0.image(), @@ -162,6 +163,7 @@ private let libraryArticleSelection = Selection.Article { title: try $0.title(), createdAt: try $0.createdAt().value ?? Date(), savedAt: try $0.savedAt().value ?? Date(), + updatedAt: try $0.updatedAt().value ?? Date(), readingProgress: try $0.readingProgressPercent(), readingProgressAnchor: try $0.readingProgressAnchorIndex(), imageURLString: try $0.image(), diff --git a/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItem.swift b/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItem.swift index 8927f7b63..9e60704c9 100644 --- a/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItem.swift +++ b/apple/OmnivoreKit/Sources/Services/InternalModels/InternalLinkedItem.swift @@ -7,6 +7,7 @@ struct InternalLinkedItem { let title: String let createdAt: Date let savedAt: Date + let updatedAt: Date var readingProgress: Double var readingProgressAnchor: Int let imageURLString: String? @@ -39,6 +40,7 @@ struct InternalLinkedItem { linkedItem.title = title linkedItem.createdAt = createdAt linkedItem.savedAt = savedAt + linkedItem.updatedAt = updatedAt linkedItem.readingProgress = readingProgress linkedItem.readingProgressAnchor = Int64(readingProgressAnchor) linkedItem.imageURLString = imageURLString @@ -95,6 +97,7 @@ extension JSONArticle { title: title, createdAt: createdAt, savedAt: savedAt, + updatedAt: updatedAt, readingProgress: readingProgressPercent, readingProgressAnchor: readingProgressAnchorIndex, imageURLString: image, diff --git a/packages/api/src/utils/uploads.ts b/packages/api/src/utils/uploads.ts index 76422657e..2fc5535d6 100644 --- a/packages/api/src/utils/uploads.ts +++ b/packages/api/src/utils/uploads.ts @@ -20,9 +20,9 @@ export const generateUploadSignedUrl = async ( contentType: string, selectedBucket?: string ): Promise => { - if (env.dev.isLocal) { - return 'http://localhost:3000/uploads/' + filePathName - } + // if (env.dev.isLocal) { + // return 'http://localhost:3000/uploads/' + filePathName + // } // These options will allow temporary uploading of file with requested content type const options: GetSignedUrlConfig = { @@ -59,9 +59,9 @@ export const makeStorageFilePublic = async ( id: string, fileName: string ): Promise => { - if (env.dev.isLocal) { - return 'http://localhost:3000/public/' + id + '/' + fileName - } + // if (env.dev.isLocal) { + // return 'http://localhost:3000/public/' + id + '/' + fileName + // } // Makes the file public const filePathName = generateUploadFilePathName(id, fileName) @@ -75,12 +75,12 @@ export const getStorageFileDetails = async ( id: string, fileName: string ): Promise<{ md5Hash: string; fileUrl: string }> => { - if (env.dev.isLocal) { - return { - md5Hash: 'some_md5_hash', - fileUrl: 'http://localhost:3000/public/' + id + '/' + fileName, - } - } + // if (env.dev.isLocal) { + // return { + // md5Hash: 'some_md5_hash', + // fileUrl: 'http://localhost:3000/public/' + id + '/' + fileName, + // } + // } const filePathName = generateUploadFilePathName(id, fileName) const file = storage.bucket(bucketName).file(filePathName) @@ -103,9 +103,9 @@ export const uploadToSignedUrl = async ( data: Buffer, contentType: string ): Promise => { - if (env.dev.isLocal) { - return - } + // if (env.dev.isLocal) { + // return + // } await axios.put(uploadUrl, data, { headers: {