trainingpeaks-sdk
Version:
TypeScript SDK for TrainingPeaks API integration
71 lines (70 loc) ⢠3.04 kB
JavaScript
import { config } from 'dotenv';
import { createTrainingPeaksSdk } from '../sdk/training-peaks-sdk.js';
config();
const main = async () => {
try {
const username = process.env.TRAININGPEAKS_TEST_USERNAME;
const password = process.env.TRAININGPEAKS_TEST_PASSWORD;
const athleteId = process.env.TRAININGPEAKS_TEST_ATHLETE_ID;
if (!username || !password) {
throw new Error('Missing credentials. Please set TRAININGPEAKS_TEST_USERNAME and TRAININGPEAKS_TEST_PASSWORD environment variables in your .env file or shell environment.');
}
console.log('Using credentials for user:', username);
if (athleteId) {
console.log('Getting workouts for athlete ID:', athleteId);
}
else {
console.log('Getting workouts for current user (athlete ID will be determined from session)');
}
const sdk = createTrainingPeaksSdk({
debug: {
enabled: true,
level: 'debug',
},
});
console.log('\nš Logging in to TrainingPeaks...');
await sdk.login({ username, password });
console.log('ā
Login successful');
const startDate = '2025-01-01';
const endDate = '2025-12-31';
console.log(`\nš Getting workouts from ${startDate} to ${endDate}...`);
const workouts = await sdk.getWorkoutsList(athleteId ? { athleteId, startDate, endDate } : { startDate, endDate });
console.log('ā
Workouts retrieved successfully');
console.log(`š Found ${workouts.length} workouts\n`);
if (workouts.length > 0) {
workouts.forEach((workout, index) => {
console.log(`šļø Workout ${index + 1}:`);
console.log(` ID: ${workout.workoutId}`);
console.log(` Title: ${workout.title}`);
console.log(` Date: ${workout.workoutDay}`);
console.log(` Start Time: ${workout.startTime || 'Not specified'}`);
console.log(` Planned Start: ${workout.startTimePlanned || 'Not specified'}`);
console.log(` Type ID: ${workout.workoutTypeValueId}`);
console.log(` Code: ${workout.code || 'No code'}`);
console.log(` Is OR: ${workout.isItAnOr}`);
console.log('');
});
}
else {
console.log('š No workouts found for the specified date range.');
}
console.log('šŖ Logging out...');
await sdk.logout();
console.log('ā
Logout successful');
console.log('\nš Example completed successfully!');
}
catch (error) {
if (error instanceof Error) {
throw error;
}
else {
const wrappedError = new Error(String(error));
wrappedError.cause = error;
throw wrappedError;
}
}
};
main().catch((error) => {
console.error('š„ Unexpected error:', error);
process.exit(1);
});