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}