Module: Strava::Api::Endpoints::Activities
- Included in:
- Client
- Defined in:
- lib/strava/api/endpoints/activities.rb
Overview
API endpoints for Strava activities.
Activities represent workouts, rides, runs, and other athletic pursuits recorded on Strava. This module provides methods for creating, retrieving, updating, and listing activities, as well as accessing related data like comments, kudos, laps, and zones.
Instance Method Summary collapse
-
#activity(id_or_options, options = {}) ⇒ Strava::Models::DetailedActivity
Get detailed information about a specific activity.
-
#activity_comments(id_or_options, options = {}) {|Strava::Models::Comment| ... } ⇒ Array<Strava::Models::Comment>
List comments for an activity.
-
#activity_kudos(id_or_options, options = {}) {|Strava::Models::SummaryAthlete| ... } ⇒ Array<Strava::Models::SummaryAthlete>
List athletes who kudoed an activity.
-
#activity_laps(id_or_options, options = {}) ⇒ Array<Strava::Models::Lap>
List laps for an activity.
-
#activity_photos(id_or_options, options = {}) {|Strava::Models::DetailedPhoto| ... } ⇒ Array<Strava::Models::DetailedPhoto>
List photos for an activity.
-
#activity_zones(id_or_options, options = {}) ⇒ Array<Strava::Models::ActivityZone>
Get zones for an activity.
-
#athlete_activities(options = {}) {|Strava::Models::SummaryActivity| ... } ⇒ Array<Strava::Models::SummaryActivity>
List activities for the authenticated athlete.
-
#create_activity(options = {}) ⇒ Strava::Models::DetailedActivity
Create a manual activity.
-
#update_activity(id_or_options, options = {}) ⇒ Strava::Models::DetailedActivity
Update an activity.
Instance Method Details
#activity(id_or_options, options = {}) ⇒ Strava::Models::DetailedActivity
Get detailed information about a specific activity.
Returns the given activity that is owned by the authenticated athlete. Includes all activity details such as splits, laps, segment efforts, and photos.
71 72 73 74 |
# File 'lib/strava/api/endpoints/activities.rb', line 71 def activity(, = {}) id, = parse_args(, ) Strava::Models::DetailedActivity.new(get("activities/#{id}", )) end |
#activity_comments(id_or_options, options = {}) {|Strava::Models::Comment| ... } ⇒ Array<Strava::Models::Comment>
List comments for an activity.
Returns the comments on the given activity. Supports cursor-based pagination.
101 102 103 104 |
# File 'lib/strava/api/endpoints/activities.rb', line 101 def activity_comments(, = {}, &block) id, = parse_args(, ) paginate_with_cursor "activities/#{id}/comments", , Strava::Models::Comment, &block end |
#activity_kudos(id_or_options, options = {}) {|Strava::Models::SummaryAthlete| ... } ⇒ Array<Strava::Models::SummaryAthlete>
List athletes who kudoed an activity.
Returns the athletes who kudoed an activity identified by an identifier.
153 154 155 156 |
# File 'lib/strava/api/endpoints/activities.rb', line 153 def activity_kudos(, = {}, &block) id, = parse_args(, ) paginate "activities/#{id}/kudos", , Strava::Models::SummaryAthlete, &block end |
#activity_laps(id_or_options, options = {}) ⇒ Array<Strava::Models::Lap>
List laps for an activity.
Returns the laps of an activity identified by an identifier. Laps are split segments either created manually or auto-generated.
175 176 177 178 179 180 |
# File 'lib/strava/api/endpoints/activities.rb', line 175 def activity_laps(, = {}) id, = parse_args(, ) get("activities/#{id}/laps", ).map do |row| Strava::Models::Lap.new(row) end end |
#activity_photos(id_or_options, options = {}) {|Strava::Models::DetailedPhoto| ... } ⇒ Array<Strava::Models::DetailedPhoto>
List photos for an activity.
Returns the photos on the given activity. This is an undocumented Strava API endpoint. By default, retrieves full-size photos (5000px).
128 129 130 131 132 |
# File 'lib/strava/api/endpoints/activities.rb', line 128 def activity_photos(, = {}, &block) id, = parse_args(, ) [:size] = 5000 unless [:size] # to retrieve full size photos paginate "activities/#{id}/photos", , Strava::Models::DetailedPhoto, &block end |
#activity_zones(id_or_options, options = {}) ⇒ Array<Strava::Models::ActivityZone>
Get zones for an activity.
Returns the zones of a given activity. Summit feature required. Zones include heart rate and power zones with distribution buckets.
241 242 243 244 245 246 |
# File 'lib/strava/api/endpoints/activities.rb', line 241 def activity_zones(, = {}) id, = parse_args(, ) get("activities/#{id}/zones", ).map do |row| Strava::Models::ActivityZone.new(row) end end |
#athlete_activities(options = {}) {|Strava::Models::SummaryActivity| ... } ⇒ Array<Strava::Models::SummaryActivity>
List activities for the authenticated athlete.
Returns the currently logged-in athlete's activities. Supports pagination and time-based filtering. Activities are returned in descending order by start date.
214 215 216 217 218 219 |
# File 'lib/strava/api/endpoints/activities.rb', line 214 def athlete_activities( = {}, &block) = .dup if .key?(:after) || .key?(:before) [:after] = [:after].to_i if [:after] [:before] = [:before].to_i if [:before] paginate 'athlete/activities', , Strava::Models::SummaryActivity, &block end |
#create_activity(options = {}) ⇒ Strava::Models::DetailedActivity
Create a manual activity.
Creates a new manual activity for an athlete. Requires write access.
45 46 47 |
# File 'lib/strava/api/endpoints/activities.rb', line 45 def create_activity( = {}) Strava::Models::DetailedActivity.new(post('activities', )) end |
#update_activity(id_or_options, options = {}) ⇒ Strava::Models::DetailedActivity
Update an activity.
Updates the given activity that is owned by the authenticated athlete. Requires write access.
277 278 279 280 |
# File 'lib/strava/api/endpoints/activities.rb', line 277 def update_activity(, = {}) id, = parse_args(, ) Strava::Models::DetailedActivity.new(put("activities/#{id}", )) end |