KinesteX

Fetching Single Items

Fetch a specific workout, plan, or exercise by ID or title.


By ID: Use the unique document ID for exact match

By Title: Use the content title (case-insensitive, returns first match)

Fetch by ID
1// Fetch a specific workout by ID
2Task {
3    let result = await kinestex.fetchWorkout(id: "9zE1kzOzpU5d5dAJrPOY")
4
5    switch result {
6    case .success(let workout):
7        print("Workout: \(workout.title)")
8        print("Duration: \(workout.totalMinutes ?? 0) minutes")
9        print("Calories: \(workout.totalCalories ?? 0)")
10        print("Exercises: \(workout.sequence.count)")
11
12    case .failure(let error):
13        print("Error: \(error.localizedDescription)")
14    }
15}
16
17// Fetch a specific exercise by ID
18Task {
19    let result = await kinestex.fetchExercise(id: "jz73VFlUyZ9nyd64OjRb")
20
21    switch result {
22    case .success(let exercise):
23        print("Exercise: \(exercise.title)")
24        print("Model ID: \(exercise.modelId)")
25
26    case .failure(let error):
27        print("Error: \(error.localizedDescription)")
28    }
29}
30
31// Fetch a specific plan by ID
32Task {
33    let result = await kinestex.fetchPlan(id: "22B3qRU2r75hVXHgGiGx")
34
35    switch result {
36    case .success(let plan):
37        print("Plan: \(plan.title)")
38
39    case .failure(let error):
40        print("Error: \(error.localizedDescription)")
41    }
42}
Fetch by Title
1// Fetch content by title (returns first match)
2Task {
3    let result = await kinestex.fetchContent(
4        contentType: .workout,
5        title: "Fitness Lite"
6    )
7
8    switch result {
9    case .workout(let workout):
10        print("Found workout: \(workout.title)")
11
12    case .error(let message):
13        print("Error: \(message)")
14
15    default:
16        print("Unexpected result type")
17    }
18}