diff --git a/packages/nodes-base/nodes/Strava/ActivityDescription.ts b/packages/nodes-base/nodes/Strava/ActivityDescription.ts index a1e48753000a7..d4e34765b12df 100644 --- a/packages/nodes-base/nodes/Strava/ActivityDescription.ts +++ b/packages/nodes-base/nodes/Strava/ActivityDescription.ts @@ -46,6 +46,11 @@ export const activityOperations: INodeProperties[] = [ value: 'getLaps', description: 'Get all activity laps', }, + { + name: 'Get Streams', + value: 'getStreams', + description: 'Get activity streams', + }, { name: 'Get Zones', value: 'getZones', @@ -316,6 +321,7 @@ export const activityFields: INodeProperties[] = [ 'getLaps', 'getKudos', 'getZones', + 'getStreams', ], }, }, @@ -369,7 +375,70 @@ export const activityFields: INodeProperties[] = [ default: 50, description: 'How many results to return.', }, - + { + displayName: 'Keys', + name: 'keys', + type: 'multiOptions', + options: [ + { + name: 'Altitude', + value: 'altitude', + }, + { + name: 'Cadence', + value: 'cadence', + }, + { + name: 'Distance', + value: 'distance', + }, + { + name: 'Gradient', + value: 'grade_smooth', + }, + { + name: 'Heartrate', + value: 'heartrate', + }, + { + name: 'Latitude / Longitude', + value: 'latlng', + }, + { + name: 'Moving', + value: 'moving', + }, + { + name: 'Temperature', + value: 'temp', + }, + { + name: 'Time', + value: 'time', + }, + { + name: 'Velocity', + value: 'velocity_smooth', + }, + { + name: 'Watts', + value: 'watts', + }, + ], + displayOptions: { + show: { + resource: [ + 'activity', + ], + operation: [ + 'getStreams', + ], + }, + }, + required: true, + default: [], + description: 'Desired stream types to return', + }, /* -------------------------------------------------------------------------- */ /* activity:getAll */ /* -------------------------------------------------------------------------- */ diff --git a/packages/nodes-base/nodes/Strava/Strava.node.ts b/packages/nodes-base/nodes/Strava/Strava.node.ts index d32f5f887b54e..6a4bf5ee808b8 100644 --- a/packages/nodes-base/nodes/Strava/Strava.node.ts +++ b/packages/nodes-base/nodes/Strava/Strava.node.ts @@ -130,6 +130,15 @@ export class Strava implements INodeType { responseData = responseData.splice(0, limit); } } + //https://developers.strava.com/docs/reference/#api-Streams-getActivityStreams + if (operation === 'getStreams') { + const activityId = this.getNodeParameter('activityId', i) as string; + const keys = this.getNodeParameter('keys', i) as string[]; + qs.keys = keys.toString(); + qs.key_by_type = true; + + responseData = await stravaApiRequest.call(this, 'GET', `/activities/${activityId}/streams`, {}, qs); + } //https://developers.mailerlite.com/reference#subscribers if (operation === 'getAll') { const returnAll = this.getNodeParameter('returnAll', i) as boolean;