All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javastrava.api.v3.service.ActivityService Maven / Gradle / Ivy

There is a newer version: 1.0.3.6
Show newest version
package javastrava.api.v3.service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.concurrent.CompletableFuture;

import javastrava.api.v3.model.StravaActivity;
import javastrava.api.v3.model.StravaActivityUpdate;
import javastrava.api.v3.model.StravaActivityZone;
import javastrava.api.v3.model.StravaAthlete;
import javastrava.api.v3.model.StravaComment;
import javastrava.api.v3.model.StravaLap;
import javastrava.api.v3.model.StravaPhoto;
import javastrava.api.v3.service.exception.BadRequestException;
import javastrava.api.v3.service.exception.NotFoundException;
import javastrava.util.Paging;

/**
 * StravaActivity related services
 *
 * @see http://strava.github.io/api/v3/activities/
 * @author Dan Shannon
 *
 */
public interface ActivityService extends StravaService {
	/**
	 * 

* Create a comment on an activity. *

* *

* Comment posting must be explicitly authorised by Strava for your application. *

* *

* The comment will be made by the user associated with the access_token. *

* *

* URL POST https://www.strava.com/api/v3/activities/:id/comments *

* * @param activityId * Activity identifier * @param text * Comment text * @return The comment as created on Strava * @throws NotFoundException if the activity does not exist * @throws BadRequestException if the comment is invalid */ public StravaComment createComment(final Long activityId, final String text) throws NotFoundException, BadRequestException; /** *

* Create a comment on an activity. *

* *

* Comment posting must be explicitly authorised by Strava for your application. *

* *

* The comment will be made by the user associated with the access_token. *

* *

* URL POST https://www.strava.com/api/v3/activities/:id/comments *

* * @param activityId * Activity identifier * @param text * Comment text * @return (A {@link CompletableFuture} which returns) The comment as created on Strava * @throws NotFoundException if the activity does not exist * @throws BadRequestException if the comment is invalid */ public CompletableFuture createCommentAsync(final Long activityId, final String text) throws NotFoundException, BadRequestException; /** *

* This API endpoint is for creating manually entered {@link StravaActivity activities}. To upload a FIT, TCX or GPX file see the Upload Documentation. *

* *

* Requires write permissions, as requested during the authorization process. *

* *

* Only updates name, activity type, startDateLocal, elapsedTime, description and distance. *

* *

* If any other activity attributes are passed to the API, they are ignored when creating the activity. *

* *

* If successful, returns a 201 status code along with a detailed representation of the created activity. *

* *

* URL POST https://www.strava.com/api/v3/activities *

* * @see http://strava.github.io/api/v3/activities/ * * @param activity * The {@link StravaActivity activity} to be uploaded * @return The activity as it was uploaded on Strava */ public StravaActivity createManualActivity(final StravaActivity activity); /** *

* This API endpoint is for creating manually entered {@link StravaActivity activities}. To upload a FIT, TCX or GPX file see the Upload Documentation. *

* *

* Requires write permissions, as requested during the authorization process. *

* *

* Only updates name, activity type, startDateLocal, elapsedTime, description and distance. *

* *

* If any other activity attributes are passed to the API, they are ignored when creating the activity. *

* *

* If successful, returns a 201 status code along with a detailed representation of the created activity. *

* *

* URL POST https://www.strava.com/api/v3/activities *

* * @see http://strava.github.io/api/v3/activities/ * * @param activity * The {@link StravaActivity activity} to be uploaded * @return (A {@link CompletableFuture} which returns) The activity as it was uploaded on Strava */ public CompletableFuture createManualActivityAsync(final StravaActivity activity); /** *

* Deletes the identified {@link StravaActivity} *

* *

* Requires write permissions, as requested during the authorization process. *

* *

* Returns null if the activity does not exist on Strava *

* *

* URL DELETE https://www.strava.com/api/v3/activities/:id *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId * The id of the {@link StravaActivity} to be deleted. * * @return Should return null * @throws NotFoundException If the activity does not exist */ public StravaActivity deleteActivity(final Long activityId) throws NotFoundException; /** *

* Deletes the identified {@link StravaActivity} *

* *

* Requires write permissions, as requested during the authorization process. *

* *

* Returns null if the activity does not exist on Strava *

* *

* URL DELETE https://www.strava.com/api/v3/activities/:id *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId * The id of the {@link StravaActivity} to be deleted. * * @return (A {@link CompletableFuture} which returns) Should return null * @throws NotFoundException If the activity does not exist */ public CompletableFuture deleteActivityAsync(final Long activityId) throws NotFoundException; /** *

* Delete a comment belonging to the authenticated user *

* * @param commentId * Identifier of the comment to be deleted * @param activityId * Identifier of the activity the comment was posted to * @throws NotFoundException * if the activity or the comment does exist */ public void deleteComment(final Long activityId, final Integer commentId) throws NotFoundException; /** *

* Delete a comment belonging to the authenticated user *

* * @param comment * The comment to be deleted * @throws NotFoundException If the comment does not exist on Strava */ public void deleteComment(final StravaComment comment) throws NotFoundException; /** *

* Delete a comment belonging to the authenticated user *

* * @param commentId * Identifier of the comment to be deleted * @param activityId * Identifier of the activity the comment was posted to * @return A {@link CompletableFuture} which indicates when the deletion is complete * @throws NotFoundException * if the activity or the comment does exist */ public CompletableFuture deleteCommentAsync(final Long activityId, final Integer commentId) throws NotFoundException; /** *

* Delete a comment belonging to the authenticated user *

* * @param comment * The comment to be deleted * @return A {@link CompletableFuture} which indicates when the deletion is complete * @throws NotFoundException If the comment does not exist on Strava */ public CompletableFuture deleteCommentAsync(final StravaComment comment) throws NotFoundException; /** *

* StravaActivity details, including segment efforts, splits and best efforts, are only available to the owner of the activity. *

* *

* By default, only "important" efforts are included. "Importance" is based on a number of undocumented factors and its value may change over time. Factors * considered include: segment age, views and stars, if the user has hidden/shown the segment and if the effort was a PR. Note, if two activities cover the * same segment, it is possible that for one activity the associated effort is "important" but not for the other. *

* *

* Note that effort ids may exceed the max value for 32-bit integers. A long integer type should be used. *

* *

* Each segment effort will have a hidden attribute indicating if it is "important" or not. *

* *

* Returns null if the activity does not exist *

* *

* URL GET https://www.strava.com/api/v3/activities/:id *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId * The id of the {@link StravaActivity activity} to be returned * @return Returns a detailed representation if the {@link StravaActivity activity} is owned by the requesting athlete. Returns a summary representation for * all other requests. */ public StravaActivity getActivity(final Long activityId); /** *

* StravaActivity details, including segment efforts, splits and best efforts, are only available to the owner of the activity. *

* *

* By default, only "important" efforts are included. "Importance" is based on a number of factors and its value may change over time. Factors considered * include: segment age, views and stars, if the user has hidden/shown the segment and if the effort was a PR. Note, if two activities cover the same * segment, it is possible that for one activity the associated effort is "important" but not for the other. *

* *

* Note that effort ids may exceed the max value for 32-bit integers. A long integer type should be used. *

* *

* Each segment effort will have a hidden attribute indicating if it is "important" or not. *

* *

* Returns null if the activity does not exist *

* *

* URL GET https://www.strava.com/api/v3/activities/:id *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId * The id of the {@link StravaActivity activity} to be returned * @param includeAllEfforts * (Optional) Used to include all segment efforts in the result (if omitted or false then only "important" efforts are returned). * @return Returns a detailed representation if the {@link StravaActivity activity} is owned by the requesting athlete. Returns a summary representation for * all other requests. */ public StravaActivity getActivity(final Long activityId, final Boolean includeAllEfforts); /** *

* StravaActivity details, including segment efforts, splits and best efforts, are only available to the owner of the activity. *

* *

* By default, only "important" efforts are included. "Importance" is based on a number of undocumented factors and its value may change over time. Factors * considered include: segment age, views and stars, if the user has hidden/shown the segment and if the effort was a PR. Note, if two activities cover the * same segment, it is possible that for one activity the associated effort is "important" but not for the other. *

* *

* Note that effort ids may exceed the max value for 32-bit integers. A long integer type should be used. *

* *

* Each segment effort will have a hidden attribute indicating if it is "important" or not. *

* *

* Returns null if the activity does not exist *

* *

* URL GET https://www.strava.com/api/v3/activities/:id *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId * The id of the {@link StravaActivity activity} to be returned * @return (A {@link CompletableFuture} which returns) Returns a detailed representation if the {@link StravaActivity activity} is owned by the requesting athlete. Returns a summary representation for * all other requests. */ public CompletableFuture getActivityAsync(final Long activityId); /** *

* StravaActivity details, including segment efforts, splits and best efforts, are only available to the owner of the activity. *

* *

* By default, only "important" efforts are included. "Importance" is based on a number of factors and its value may change over time. Factors considered * include: segment age, views and stars, if the user has hidden/shown the segment and if the effort was a PR. Note, if two activities cover the same * segment, it is possible that for one activity the associated effort is "important" but not for the other. *

* *

* Note that effort ids may exceed the max value for 32-bit integers. A long integer type should be used. *

* *

* Each segment effort will have a hidden attribute indicating if it is "important" or not. *

* *

* Returns null if the activity does not exist *

* *

* URL GET https://www.strava.com/api/v3/activities/:id *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId * The id of the {@link StravaActivity activity} to be returned * @param includeAllEfforts * (Optional) Used to include all segment efforts in the result (if omitted or false then only "important" efforts are returned). * @return (A {@link CompletableFuture} which returns) Returns a detailed representation if the {@link StravaActivity activity} is owned by the requesting athlete. Returns a summary representation for * all other requests. */ public CompletableFuture getActivityAsync(final Long activityId, final Boolean includeAllEfforts); /** *

* Kudo an activity (kudo is given by the authenticated athlete). You can do this multiple times, but the activity only receives one kudos. *

* * @param activityId * Identifier of the activity to be kudoed. * @throws NotFoundException If the activity does not exist on Strava */ public void giveKudos(final Long activityId) throws NotFoundException; /** *

* Kudo an activity (kudo is given by the authenticated athlete). You can do this multiple times, but the activity only receives one kudos. *

* * @param activityId * Identifier of the activity to be kudoed. * @return A {@link CompletableFuture} which indicates when the kudos has been given * @throws NotFoundException If the activity does not exist on Strava */ public CompletableFuture giveKudosAsync(final Long activityId) throws NotFoundException; /** *

* Comments on an activity can be viewed by any user. However, only internal applications are allowed to create or delete them. *

* *

* {@link StravaComment Comment} posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of comments is included in the activity summary and detail responses. Use this endpoint to retrieve a list of comments left on a given * activity. *

* *

* Pagination is not supported. Only the first page is returned by Strava. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Returns an empty array if the {@link StravaActivity} does not contain any {@link StravaComment comments} *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/comments *

* * @see http://strava.github.io/api/v3/comments/ * * @param activityId * The id of the {@link StravaActivity} for which {@link StravaComment comments} should be returned * @return List of comments */ public List listActivityComments(final Long activityId); /** *

* Comments on an activity can be viewed by any user. However, only internal applications are allowed to create or delete them. *

* *

* StravaComment posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of comments is included in the activity summary and detail responses. Use this endpoint to retrieve a list of comments left on a given * activity. *

* *

* Pagination is not supported. Only the first page is returned by Strava. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Returns an empty array if the {@link StravaActivity} does not contain any {@link StravaComment comments} *

* *

* Pagination is not supported. Returns only the first page of activities. *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/comments *

* * @see http://strava.github.io/api/v3/comments/ * * @param activityId * The id of the {@link StravaActivity} for which {@link StravaComment comments} should be returned * @param markdown * (Optional) Include markdown in comments (default is false - i.e. filter out * @return List of comments */ public List listActivityComments(final Long activityId, final Boolean markdown); /** *

* Comments on an activity can be viewed by any user. However, only internal applications are allowed to create or delete them. *

* *

* StravaComment posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of comments is included in the activity summary and detail responses. Use this endpoint to retrieve a list of comments left on a given * activity. *

* *

* Pagination is supported. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Returns an empty array if the {@link StravaActivity} does not contain any {@link StravaComment comments} *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/comments *

* * @see http://strava.github.io/api/v3/comments/ * * @param activityId * The id of the {@link StravaActivity} for which {@link StravaComment comments} should be returned * @param markdown * (Optional) Include markdown in comments (default is false - i.e. filter out * @param pagingInstruction * (Optional) The page to be returned * @return List of comments */ public List listActivityComments(final Long activityId, final Boolean markdown, final Paging pagingInstruction); /** *

* Comments on an activity can be viewed by any user. However, only internal applications are allowed to create or delete them. *

* *

* {@link StravaComment Comment} posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of comments is included in the activity summary and detail responses. Use this endpoint to retrieve a list of comments left on a given * activity. *

* *

* Pagination is supported. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Returns an empty array if the {@link StravaActivity} does not contain any {@link StravaComment comments} *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/comments *

* * @see http://strava.github.io/api/v3/comments/ * * @param activityId * The id of the {@link StravaActivity} for which {@link StravaComment comments} should be returned * @param pagingInstruction * (Optional) Paging instructions. If not provided then the first page is returned. * @return List of comments */ public List listActivityComments(final Long activityId, final Paging pagingInstruction); /** *

* Comments on an activity can be viewed by any user. However, only internal applications are allowed to create or delete them. *

* *

* {@link StravaComment Comment} posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of comments is included in the activity summary and detail responses. Use this endpoint to retrieve a list of comments left on a given * activity. *

* *

* Pagination is not supported. Only the first page is returned by Strava. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Returns an empty array if the {@link StravaActivity} does not contain any {@link StravaComment comments} *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/comments *

* * @see http://strava.github.io/api/v3/comments/ * * @param activityId * The id of the {@link StravaActivity} for which {@link StravaComment comments} should be returned * @return (A {@link CompletableFuture} which returns) List of comments */ public CompletableFuture> listActivityCommentsAsync(final Long activityId); /** *

* Comments on an activity can be viewed by any user. However, only internal applications are allowed to create or delete them. *

* *

* StravaComment posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of comments is included in the activity summary and detail responses. Use this endpoint to retrieve a list of comments left on a given * activity. *

* *

* Pagination is not supported. Only the first page is returned by Strava. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Returns an empty array if the {@link StravaActivity} does not contain any {@link StravaComment comments} *

* *

* Pagination is not supported. Returns only the first page of activities. *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/comments *

* * @see http://strava.github.io/api/v3/comments/ * * @param activityId * The id of the {@link StravaActivity} for which {@link StravaComment comments} should be returned * @param markdown * (Optional) Include markdown in comments (default is false - i.e. filter out * @return (A {@link CompletableFuture} which returns) List of comments */ public CompletableFuture> listActivityCommentsAsync(final Long activityId, final Boolean markdown); /** *

* Comments on an activity can be viewed by any user. However, only internal applications are allowed to create or delete them. *

* *

* StravaComment posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of comments is included in the activity summary and detail responses. Use this endpoint to retrieve a list of comments left on a given * activity. *

* *

* Pagination is supported. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Returns an empty array if the {@link StravaActivity} does not contain any {@link StravaComment comments} *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/comments *

* * @see http://strava.github.io/api/v3/comments/ * * @param activityId * The id of the {@link StravaActivity} for which {@link StravaComment comments} should be returned * @param markdown * (Optional) Include markdown in comments (default is false - i.e. filter out * @param pagingInstruction * (Optional) The page to be returned * @return (A {@link CompletableFuture} which returns) List of comments */ public CompletableFuture> listActivityCommentsAsync(final Long activityId, final Boolean markdown, final Paging pagingInstruction); /** *

* Comments on an activity can be viewed by any user. However, only internal applications are allowed to create or delete them. *

* *

* {@link StravaComment Comment} posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of comments is included in the activity summary and detail responses. Use this endpoint to retrieve a list of comments left on a given * activity. *

* *

* Pagination is supported. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Returns an empty array if the {@link StravaActivity} does not contain any {@link StravaComment comments} *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/comments *

* * @see http://strava.github.io/api/v3/comments/ * * @param activityId * The id of the {@link StravaActivity} for which {@link StravaComment comments} should be returned * @param pagingInstruction * (Optional) Paging instructions. If not provided then the first page is returned. * @return (A {@link CompletableFuture} which returns) List of comments */ public CompletableFuture> listActivityCommentsAsync(final Long activityId, final Paging pagingInstruction); /** *

* A kudos is Strava's version of a 'like' or '+1'. The number of kudos on an activity is returned with the activity summary. *

* *

* Kudos posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of kudos is included in the activity summary and detailed representations. This endpoint is for retrieving more detailed information on the * athletes who have left kudos and can only be accessed by the owner of the activity. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Pagination is not supported. Only the first page is returned by Strava. *

* * @see http://strava.github.io/api/v3/kudos/ * * @param activityId * The id of the {@link StravaActivity} for which kudoers are to be listed * @return Returns an array of {@link StravaAthlete athlete} summary objects. */ public List listActivityKudoers(final Long activityId); /** *

* A kudos is Strava's version of a 'like' or '+1'. The number of kudos on an activity is returned with the activity summary. *

* *

* Kudos posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of kudos is included in the activity summary and detailed representations. This endpoint is for retrieving more detailed information on the * athletes who have left kudos and can only be accessed by the owner of the activity. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Pagination is supported. *

* * @see http://strava.github.io/api/v3/kudos/ * * @param activityId * The id of the {@link StravaActivity} for which kudoers are to be listed * @param pagingInstruction * (Optional) The page to be returned * @return Returns an array of {@link StravaAthlete athlete} summary objects. */ public List listActivityKudoers(final Long activityId, final Paging pagingInstruction); /** *

* A kudos is Strava's version of a 'like' or '+1'. The number of kudos on an activity is returned with the activity summary. *

* *

* Kudos posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of kudos is included in the activity summary and detailed representations. This endpoint is for retrieving more detailed information on the * athletes who have left kudos and can only be accessed by the owner of the activity. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Pagination is not supported. Only the first page is returned by Strava. *

* * @see http://strava.github.io/api/v3/kudos/ * * @param activityId * The id of the {@link StravaActivity} for which kudoers are to be listed * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaAthlete athlete} summary objects. */ public CompletableFuture> listActivityKudoersAsync(final Long activityId); /** *

* A kudos is Strava's version of a 'like' or '+1'. The number of kudos on an activity is returned with the activity summary. *

* *

* Kudos posting can be enabled on a per application basis, email developers -at- strava.com for more information. *

* *

* The number of kudos is included in the activity summary and detailed representations. This endpoint is for retrieving more detailed information on the * athletes who have left kudos and can only be accessed by the owner of the activity. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Pagination is supported. *

* * @see http://strava.github.io/api/v3/kudos/ * * @param activityId * The id of the {@link StravaActivity} for which kudoers are to be listed * @param pagingInstruction * (Optional) The page to be returned * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaAthlete athlete} summary objects. */ public CompletableFuture> listActivityKudoersAsync(final Long activityId, final Paging pagingInstruction); /** *

* This resource will return all laps for an activity. Laps are triggered by athletes using their respective devices, such as Garmin watches. *

* *

* Returns null if the activity does not exist *

* *

* Pagination is not supported. Returns all the laps for the activity. *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/laps *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId * The id of the {@link StravaActivity} for which laps should be returned * @return Returns an array of {@link StravaLap lap} effort summaries */ public List listActivityLaps(final Long activityId); /** *

* This resource will return all laps for an activity. Laps are triggered by athletes using their respective devices, such as Garmin watches. *

* *

* Returns null if the activity does not exist *

* *

* Pagination is not supported. Returns all the laps for the activity. *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/laps *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId * The id of the {@link StravaActivity} for which laps should be returned * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaLap lap} effort summaries */ public CompletableFuture> listActivityLapsAsync(final Long activityId); /** *

* Photos are external objects associated with an activity. Currently, the only external photo source is Instagram. *

* *

* Note that Instagram does not provide taken_at information. *

* *

* The number of photos is included in the activity summary and detail responses. Use this endpoint to retrieve a list of photos associated with this * activity. This endpoint can only be accessed by the owner of the activity. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Pagination is not supported. Returns all photos associated with the activity. *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/photos *

* * @see http://strava.github.io/api/v3/photos/ * * @param activityId * The id of the {@link StravaActivity} for which photos are to be listed * @return Returns an array of {@link StravaPhoto photo} objects. */ public List listActivityPhotos(final Long activityId); /** *

* Photos are external objects associated with an activity. Currently, the only external photo source is Instagram. *

* *

* Note that Instagram does not provide taken_at information. *

* *

* The number of photos is included in the activity summary and detail responses. Use this endpoint to retrieve a list of photos associated with this * activity. This endpoint can only be accessed by the owner of the activity. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Pagination is not supported. Returns all photos associated with the activity. *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/photos *

* * @see http://strava.github.io/api/v3/photos/ * * @param activityId * The id of the {@link StravaActivity} for which photos are to be listed * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaPhoto photo} objects. */ public CompletableFuture> listActivityPhotosAsync(final Long activityId); /** *

* Heartrate and power zones are set by the {@link StravaAthlete athlete}. This endpoint returns the time (seconds) in each zone for the * {@link StravaActivity activity}. *

* *

* The distribution is not customizable. *

* *

* Requires an access token associated with the owner of the activity and the owner must be a premium user. *

* *

* Returns null if the activity does not exist *

* *

* Pagination is not supported. Returns all activity zones for the activity. *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/zones *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId * The id of the {@link StravaActivity activity} for which zones should be returned * @return Returns an array of {@link StravaActivityZone activity zones} for the {@link StravaActivity} identified */ public List listActivityZones(final Long activityId); /** *

* Heartrate and power zones are set by the {@link StravaAthlete athlete}. This endpoint returns the time (seconds) in each zone for the * {@link StravaActivity activity}. *

* *

* The distribution is not customizable. *

* *

* Requires an access token associated with the owner of the activity and the owner must be a premium user. *

* *

* Returns null if the activity does not exist *

* *

* Pagination is not supported. Returns all activity zones for the activity. *

* *

* URL GET https://www.strava.com/api/v3/activities/:id/zones *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId * The id of the {@link StravaActivity activity} for which zones should be returned * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaActivityZone activity zones} for the {@link StravaActivity} identified */ public CompletableFuture> listActivityZonesAsync(final Long activityId); /** *

* List ALL comments on an activity, regardless of how many there are *

* *

* Returns null if the activity does not exist *

* *

* Pagination is not supported - this method just returns ALL comments *

* *

* USE WITH CAUTION - ACTIVITIES WITH MANY COMMENTS WILL REQUIRE MANY CALLS TO THE STRAVA API *

* * @param activityId The activity whose comments should be listed * @return All comments on the activity */ public List listAllActivityComments(final Long activityId); /** *

* List ALL comments on an activity, regardless of how many there are *

* *

* Returns null if the activity does not exist *

* *

* Pagination is not supported - this method just returns ALL comments *

* *

* USE WITH CAUTION - ACTIVITIES WITH MANY COMMENTS WILL REQUIRE MANY CALLS TO THE STRAVA API *

* * @param activityId The activity whose comments should be listed * @return (A {@link CompletableFuture} which returns) All comments on the activity */ public CompletableFuture> listAllActivityCommentsAsync(final Long activityId); /** *

* List ALL kudoers on an activity, regardless of how many there are *

* *

* Returns null if the activity does not exist *

* *

* Pagination is not supported - this method just returns ALL kudoers *

* *

* USE WITH CAUTION - ACTIVITIES WITH MANY KUDOS WILL REQUIRE MANY CALLS TO THE STRAVA API *

* * @param activityId The activity whose kudoers should be listed * @return All athletes who have kudoed the activity */ public List listAllActivityKudoers(final Long activityId); /** *

* List ALL kudoers on an activity, regardless of how many there are *

* *

* Returns null if the activity does not exist *

* *

* Pagination is not supported - this method just returns ALL kudoers *

* *

* USE WITH CAUTION - ACTIVITIES WITH MANY KUDOS WILL REQUIRE MANY CALLS TO THE STRAVA API *

* * @param activityId The activity whose kudoers should be listed * @return (A {@link CompletableFuture} which returns) All athletes who have kudoed the activity */ public CompletableFuture> listAllActivityKudoersAsync(final Long activityId); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* Pagination is NOT supported. USE WITH CAUTION. ALL activities for the athlete will be returned, regardless of how many calls to the Strava API are * required to achieve this. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* * @see http://strava.github.io/api/v3/activities/ * * @return Returns an array of {@link StravaActivity} summary representations sorted newest first by default. */ public List listAllAuthenticatedAthleteActivities(); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* Pagination is NOT supported. USE WITH CAUTION. ALL activities for the athlete will be returned, regardless of how many calls to the Strava API are * required to achieve this. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* * @see http://strava.github.io/api/v3/activities/ * * @param before Return only rides started BEFORE this date/time * @param after Return only rides started AFTER this data/time * @return Returns an array of {@link StravaActivity} summary representations sorted newest first by default. */ public List listAllAuthenticatedAthleteActivities(final LocalDateTime before, final LocalDateTime after); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* Pagination is NOT supported. USE WITH CAUTION. ALL activities for the athlete will be returned, regardless of how many calls to the Strava API are * required to achieve this. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* * @see http://strava.github.io/api/v3/activities/ * * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaActivity} summary representations sorted newest first by default. */ public CompletableFuture> listAllAuthenticatedAthleteActivitiesAsync(); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* Pagination is NOT supported. USE WITH CAUTION. ALL activities for the athlete will be returned, regardless of how many calls to the Strava API are * required to achieve this. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* * @see http://strava.github.io/api/v3/activities/ * * @param before Return only rides started BEFORE this date/time * @param after Return only rides started AFTER this data/time * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaActivity} summary representations sorted newest first by default. */ public CompletableFuture> listAllAuthenticatedAthleteActivitiesAsync(final LocalDateTime before, final LocalDateTime after); /** *

* List the recent activities performed by those the current authenticated {@link StravaAthlete} is following. *

* *

* Pagination is not supported - this method just returns ALL friends' activities (although it is restricted by Strava to the last 200) *

* *

* USE WITH CAUTION - ACTIVITIES WITH MANY RELATED ACTIVITIES WILL REQUIRE MANY CALLS TO THE STRAVA API *

* *

* URL GET https://www.strava.com/api/v3/activities/following *

* * @see http://strava.github.io/api/v3/activities/ * * @return Returns an array of activity summary representations sorted newest first by start_date. */ public List listAllFriendsActivities(); /** *

* List the recent activities performed by those the current authenticated {@link StravaAthlete} is following. *

* *

* Pagination is not supported - this method just returns ALL friends' activities (although it is restricted by Strava to the last 200) *

* *

* USE WITH CAUTION - ACTIVITIES WITH MANY RELATED ACTIVITIES WILL REQUIRE MANY CALLS TO THE STRAVA API *

* *

* URL GET https://www.strava.com/api/v3/activities/following *

* * @see http://strava.github.io/api/v3/activities/ * * @return (A {@link CompletableFuture} which returns) Returns an array of activity summary representations sorted newest first by start_date. */ public CompletableFuture> listAllFriendsActivitiesAsync(); /** *

* List ALL related activities, regardless of how many there are *

* *

* Returns null if the activity does not exist *

* *

* Pagination is not supported - this method just returns ALL related activities *

* *

* USE WITH CAUTION - ACTIVITIES WITH MANY RELATED ACTIVITIES WILL REQUIRE MANY CALLS TO THE STRAVA API *

* * @param activityId The activity identifier * @return List of Strava activities that Strava has determined are related to this one */ public List listAllRelatedActivities(final Long activityId); /** *

* List ALL related activities, regardless of how many there are *

* *

* Returns null if the activity does not exist *

* *

* Pagination is not supported - this method just returns ALL related activities *

* *

* USE WITH CAUTION - ACTIVITIES WITH MANY RELATED ACTIVITIES WILL REQUIRE MANY CALLS TO THE STRAVA API *

* * @param activityId The activity identifier * @return (A {@link CompletableFuture} which returns) List of Strava activities that Strava has determined are related to this one */ public CompletableFuture> listAllRelatedActivitiesAsync(final Long activityId); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* *

* Pagination is not supported. Returns only the first page of activities. *

* * @see http://strava.github.io/api/v3/activities/ * * @return Returns an array of {@link StravaActivity} summary representations sorted newest first by default. */ public List listAuthenticatedAthleteActivities(); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* Pagination is not supported. Returns only the first page of activities. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* * @see http://strava.github.io/api/v3/activities/ * * @param before * (Optional) result will start with activities whose start_date is before this value * @param after * (Optional) result will start with activities whose start_date is after this value, sorted oldest first * @return Returns an array of {@link StravaActivity} summary representations sorted newest first by default. Will be sorted oldest first if the after * parameter is used. */ public List listAuthenticatedAthleteActivities(final LocalDateTime before, final LocalDateTime after); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* Should be used with before, after or page/per_page. Using a combination will result in an error or unexpected results. *

* *

* Pagination is supported. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* * @see http://strava.github.io/api/v3/activities/ * * @param before * (Optional) result will start with activities whose start_date is before this value * @param after * (Optional) result will start with activities whose start_date is after this value, sorted oldest first * @param pagingInstruction * (Optional) The page to be returned * @return Returns an array of {@link StravaActivity} summary representations sorted newest first by default. Will be sorted oldest first if the after * parameter is used. */ public List listAuthenticatedAthleteActivities(final LocalDateTime before, final LocalDateTime after, final Paging pagingInstruction); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* *

* Pagination is supported *

* * @see http://strava.github.io/api/v3/activities/ * * @param pagingInstruction * (Optional) The page to be returned * @return Returns an array of {@link StravaActivity} summary representations sorted newest first by default. Will be sorted oldest first if the after * parameter is used. */ public List listAuthenticatedAthleteActivities(final Paging pagingInstruction); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* *

* Pagination is not supported. Returns only the first page of activities. *

* * @see http://strava.github.io/api/v3/activities/ * * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaActivity} summary representations sorted newest first by default. */ public CompletableFuture> listAuthenticatedAthleteActivitiesAsync(); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* Pagination is not supported. Returns only the first page of activities. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* * @see http://strava.github.io/api/v3/activities/ * * @param before * (Optional) result will start with activities whose start_date is before this value * @param after * (Optional) result will start with activities whose start_date is after this value, sorted oldest first * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaActivity} summary representations sorted newest first by default. Will be sorted oldest first if the after * parameter is used. */ public CompletableFuture> listAuthenticatedAthleteActivitiesAsync(final LocalDateTime before, final LocalDateTime after); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* Should be used with before, after or page/per_page. Using a combination will result in an error or unexpected results. *

* *

* Pagination is supported. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* * @see http://strava.github.io/api/v3/activities/ * * @param before * (Optional) result will start with activities whose start_date is before this value * @param after * (Optional) result will start with activities whose start_date is after this value, sorted oldest first * @param pagingInstruction * (Optional) The page to be returned * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaActivity} summary representations sorted newest first by default. Will be sorted oldest first if the after * parameter is used. */ public CompletableFuture> listAuthenticatedAthleteActivitiesAsync(final LocalDateTime before, final LocalDateTime after, final Paging pagingInstruction); /** *

* This endpoint returns a list of {@link StravaActivity activities} for the authenticated {@link StravaAthlete}. *

* *

* URL GET https://www.strava.com/api/v3/athlete/activities *

* *

* Pagination is supported *

* * @see http://strava.github.io/api/v3/activities/ * * @param pagingInstruction * (Optional) The page to be returned * @return (A {@link CompletableFuture} which returns) Returns an array of {@link StravaActivity} summary representations sorted newest first by default. Will be sorted oldest first if the after * parameter is used. */ public CompletableFuture> listAuthenticatedAthleteActivitiesAsync(final Paging pagingInstruction); /** *

* List the recent activities performed by those the current authenticated {@link StravaAthlete} is following. *

* *

* Pagination is not supported. Only the first page is returned by Strava. *

* *

* URL GET https://www.strava.com/api/v3/activities/following *

* * @see http://strava.github.io/api/v3/activities/ * * @return Returns an array of activity summary representations sorted newest first by start_date. */ public List listFriendsActivities(); /** *

* List the recent activities performed by those the current authenticated {@link StravaAthlete} is following. *

* *

* Pagination is supported. However, results are limited to the last 200 total activities. *

* *

* URL GET https://www.strava.com/api/v3/activities/following *

* * @see http://strava.github.io/api/v3/activities/ * * @param pagingInstruction * (Optional) The page to be returned * @return Returns an array of activity summary representations sorted newest first by start_date. */ public List listFriendsActivities(final Paging pagingInstruction); /** *

* List the recent activities performed by those the current authenticated {@link StravaAthlete} is following. *

* *

* Pagination is not supported. Only the first page is returned by Strava. *

* *

* URL GET https://www.strava.com/api/v3/activities/following *

* * @see http://strava.github.io/api/v3/activities/ * * @return (A {@link CompletableFuture} which returns) Returns an array of activity summary representations sorted newest first by start_date. */ public CompletableFuture> listFriendsActivitiesAsync(); /** *

* List the recent activities performed by those the current authenticated {@link StravaAthlete} is following. *

* *

* Pagination is supported. However, results are limited to the last 200 total activities. *

* *

* URL GET https://www.strava.com/api/v3/activities/following *

* * @see http://strava.github.io/api/v3/activities/ * * @param pagingInstruction * (Optional) The page to be returned * @return (A {@link CompletableFuture} which returns) Returns an array of activity summary representations sorted newest first by start_date. */ public CompletableFuture> listFriendsActivitiesAsync(final Paging pagingInstruction); /** *

* Returns the activities that were matched as "with this group". The number equals activity.athlete_count-1. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Pagination is not supported. Only the first page is returned by Strava. *

* * @param id * StravaActivity id for which related activities should be listed * @return List of related activities (not including the main activity) */ public List listRelatedActivities(final Long id); /** *

* Returns the activities that were matched as "with this group". The number equals activity.athlete_count-1. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Pagination is supported. *

* * @param id * StravaActivity id for which related activities should be listed * @param pagingInstruction * Paging instructions * @return List of related activities (not including the main activity) */ public List listRelatedActivities(final Long id, final Paging pagingInstruction); /** *

* Returns the activities that were matched as "with this group". The number equals activity.athlete_count-1. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Pagination is not supported. Only the first page is returned by Strava. *

* * @param id * StravaActivity id for which related activities should be listed * @return (A {@link CompletableFuture} which returns) List of related activities (not including the main activity) */ public CompletableFuture> listRelatedActivitiesAsync(final Long id); /** *

* Returns the activities that were matched as "with this group". The number equals activity.athlete_count-1. *

* *

* Returns null if the {@link StravaActivity} does not exist *

* *

* Pagination is supported. *

* * @param id * StravaActivity id for which related activities should be listed * @param pagingInstruction * Paging instructions * @return (A {@link CompletableFuture} which returns) List of related activities (not including the main activity) */ public CompletableFuture> listRelatedActivitiesAsync(final Long id, final Paging pagingInstruction); /** *

* Requires write permissions, as requested during the authorization process. *

* *

* Only updates name, type, private, commute, trainer, gear_id and description *

* *

* Returns null if the activity doesn't exist on Strava *

* *

* URL PUT https://www.strava.com/api/v3/activities/:id *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId The identifier of the activity to be updated * @param activity * The {@link StravaActivityUpdate} to be updated * @return Returns a detailed representation of the updated {@link StravaActivity}. * @throws NotFoundException If the activity with the given id does not exist * */ public StravaActivity updateActivity(final Long activityId, final StravaActivityUpdate activity) throws NotFoundException; /** *

* Requires write permissions, as requested during the authorization process. *

* *

* Only updates name, type, private, commute, trainer, gear_id and description *

* *

* Returns null if the activity doesn't exist on Strava *

* *

* URL PUT https://www.strava.com/api/v3/activities/:id *

* * @see http://strava.github.io/api/v3/activities/ * * @param activityId The identifier of the activity to be updated * @param activity * The {@link StravaActivityUpdate} to be updated * @return (A {@link CompletableFuture} which returns) Returns a detailed representation of the updated {@link StravaActivity}. * @throws NotFoundException If the activity with the given id does not exist * */ public CompletableFuture updateActivityAsync(final Long activityId, final StravaActivityUpdate activity) throws NotFoundException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy