29 lines
844 B
Swift
29 lines
844 B
Swift
import Foundation
|
|
|
|
@MainActor
|
|
final class ActivityService {
|
|
static let shared = ActivityService()
|
|
private let client = APIClient.shared
|
|
|
|
func summary() async throws -> ActivitySummary {
|
|
try await client.request("/activity/summary")
|
|
}
|
|
|
|
func heatmap() async throws -> [String: Int] {
|
|
try await client.request("/activity/heatmap")
|
|
}
|
|
|
|
func trend(days: Int = 7) async throws -> [ActivityTrend] {
|
|
try await client.request("/activity/trend?days=\(days)")
|
|
}
|
|
|
|
func streak() async throws -> ActivityStreak {
|
|
let offset = TimeZone.current.secondsFromGMT() / 60
|
|
return try await client.request("/activity/streak?tzOffset=\(offset)")
|
|
}
|
|
|
|
func recommendations() async throws -> [ActivityRecommendation] {
|
|
try await client.request("/activity/recommendations")
|
|
}
|
|
}
|