trainingpeaks-sdk
Version:
TypeScript SDK for TrainingPeaks API integration
33 lines (32 loc) • 1.22 kB
JavaScript
import { handleRepositoryError, } from '../../adapters/errors/http-errors.js';
import { generateWorkoutListUrl } from './constants/api-urls.js';
import { getWorkoutsList } from './endpoints/index.js';
const createGetWorkoutsList = (deps) => {
return async (params) => {
try {
deps.logger.info('Getting workouts list', { params });
const apiResponse = await getWorkoutsList(deps.httpClient, {
athleteId: params.athleteId,
startDate: params.startDate,
endDate: params.endDate,
});
deps.logger.info('Workouts list retrieved successfully', {
count: apiResponse.length,
});
return apiResponse;
}
catch (error) {
const errorContext = {
url: generateWorkoutListUrl(params.athleteId, params.startDate, params.endDate),
method: 'GET',
};
handleRepositoryError(error, 'get workouts list', errorContext, deps.logger, params);
throw error;
}
};
};
export const createWorkoutRepository = (deps) => {
return {
getWorkoutsList: createGetWorkoutsList(deps),
};
};