From 1c4d18704e687144719df0d4909b337755c7562a Mon Sep 17 00:00:00 2001 From: Povilas Staskus <4062343+staskus@users.noreply.github.com> Date: Wed, 5 Jun 2024 13:36:51 +0300 Subject: [PATCH 1/3] Include relativeURL and downloadURL to StatsFileDownload --- CHANGELOG.md | 2 +- .../StatsFileDownloadsTimeIntervalData.swift | 22 ++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d55ce4a5..717084d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,7 +34,7 @@ _None._ ### Breaking Changes -_None._ +- Expanded `StatsFileDownload` entity to contain `relativeURL` and `downloadURL` [#808] ### New Features diff --git a/Sources/WordPressKit/Models/Stats/Time Interval/StatsFileDownloadsTimeIntervalData.swift b/Sources/WordPressKit/Models/Stats/Time Interval/StatsFileDownloadsTimeIntervalData.swift index da268e47..2912959d 100644 --- a/Sources/WordPressKit/Models/Stats/Time Interval/StatsFileDownloadsTimeIntervalData.swift +++ b/Sources/WordPressKit/Models/Stats/Time Interval/StatsFileDownloadsTimeIntervalData.swift @@ -22,11 +22,17 @@ public struct StatsFileDownloadsTimeIntervalData { public struct StatsFileDownload { public let file: String public let downloadCount: Int + public let relativeURL: String + public let downloadURL: URL public init(file: String, - downloadCount: Int) { + downloadCount: Int, + relativeURL: String, + downloadURL: URL) { self.file = file self.downloadCount = downloadCount + self.relativeURL = relativeURL + self.downloadURL = downloadURL } } @@ -49,11 +55,21 @@ extension StatsFileDownloadsTimeIntervalData: StatsTimeIntervalData { } let fileDownloads: [StatsFileDownload] = fileDownloadsDict.compactMap { - guard let file = $0["filename"] as? String, let downloads = $0["downloads"] as? Int else { + guard let file = $0["filename"] as? String, + let downloads = $0["downloads"] as? Int, + let relativeURLString = $0["relative_url"] as? String, + let downloadURLString = $0["download_url"] as? String, + let downloadURL = URL(string: downloadURLString) + else { return nil } - return StatsFileDownload(file: file, downloadCount: downloads) + return StatsFileDownload( + file: file, + downloadCount: downloads, + relativeURL: relativeURLString, + downloadURL: downloadURL + ) } self.periodEndDate = date From 0e3a287f8f3056f6f8d1c05eaa611b914a7bc81a Mon Sep 17 00:00:00 2001 From: Povilas Staskus <4062343+staskus@users.noreply.github.com> Date: Wed, 5 Jun 2024 13:42:01 +0300 Subject: [PATCH 2/3] Update file download tests --- .../Mock Data/stats-file-downloads.json | 12 ++++++++---- .../WordPressKitTests/Tests/StatsRemoteV2Tests.swift | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Tests/WordPressKitTests/Mock Data/stats-file-downloads.json b/Tests/WordPressKitTests/Mock Data/stats-file-downloads.json index bf6d81c5..e875671a 100644 --- a/Tests/WordPressKitTests/Mock Data/stats-file-downloads.json +++ b/Tests/WordPressKitTests/Mock Data/stats-file-downloads.json @@ -5,12 +5,16 @@ "2019-07-01": { "files": [ { - "filename": "/2019/07/test.pdf", - "downloads": 11 + "filename": "test.pdf", + "downloads": 11, + "relative_url": "/2019/07/test.pdf", + "download_url": "https://testsite.com/2019/07/test.pdf" }, { - "filename": "/2019/07/sampleaudio.mp3", - "downloads": 4 + "filename": "sampleaudio.mp3", + "downloads": 4, + "relative_url": "/2019/07/sampleaudio.mp3", + "download_url": "https://testsite.com/2019/07/sampleaudio.mp3" } ], "other_downloads": 0, diff --git a/Tests/WordPressKitTests/Tests/StatsRemoteV2Tests.swift b/Tests/WordPressKitTests/Tests/StatsRemoteV2Tests.swift index 95476038..8b2c88af 100644 --- a/Tests/WordPressKitTests/Tests/StatsRemoteV2Tests.swift +++ b/Tests/WordPressKitTests/Tests/StatsRemoteV2Tests.swift @@ -393,7 +393,8 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable { XCTAssertEqual(fileDownloads?.fileDownloads.count, 2) - XCTAssertEqual(fileDownloads?.fileDownloads.first!.file, "/2019/07/test.pdf") + XCTAssertEqual(fileDownloads?.fileDownloads.first!.file, "test.pdf") + XCTAssertEqual(fileDownloads?.fileDownloads.first!.downloadURL, URL(string: "https://testsite.com/2019/07/test.pdf")) XCTAssertEqual(fileDownloads?.fileDownloads.first!.downloadCount, 11) expect.fulfill() From dd3f1acfe44b02e01ed32a9002c01b5d0751ea4d Mon Sep 17 00:00:00 2001 From: Povilas Staskus <4062343+staskus@users.noreply.github.com> Date: Wed, 5 Jun 2024 13:48:33 +0300 Subject: [PATCH 3/3] Update StatsFileDownloadsTimeIntervalData.swift --- .../Time Interval/StatsFileDownloadsTimeIntervalData.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/WordPressKit/Models/Stats/Time Interval/StatsFileDownloadsTimeIntervalData.swift b/Sources/WordPressKit/Models/Stats/Time Interval/StatsFileDownloadsTimeIntervalData.swift index 2912959d..2a7e4dd2 100644 --- a/Sources/WordPressKit/Models/Stats/Time Interval/StatsFileDownloadsTimeIntervalData.swift +++ b/Sources/WordPressKit/Models/Stats/Time Interval/StatsFileDownloadsTimeIntervalData.swift @@ -67,7 +67,7 @@ extension StatsFileDownloadsTimeIntervalData: StatsTimeIntervalData { return StatsFileDownload( file: file, downloadCount: downloads, - relativeURL: relativeURLString, + relativeURL: relativeURLString, downloadURL: downloadURL ) }