UNPKG

trainingpeaks-sdk

Version:
69 lines (68 loc) 2.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateWorkoutListUrl = exports.API_ENDPOINTS = exports.API_ORIGINS = exports.API_BASE_URLS = exports.DEFAULT_API_URLS = exports.createApiUrls = exports.DEFAULT_PATHS = exports.DEFAULT_BASE_URLS = void 0; exports.DEFAULT_BASE_URLS = { api: 'https://tpapi.trainingpeaks.com', home: 'https://home.trainingpeaks.com', app: 'https://app.trainingpeaks.com', }; exports.DEFAULT_PATHS = { login: '/login', users: '/users', token: '/token', userProfile: '/user', tokenRefresh: '/token/refresh', userPreferences: '/preferences', fitness: '/fitness', athletes: '/athletes', workouts: '/workouts', }; const createApiUrls = (config = {}) => { const baseUrls = { ...exports.DEFAULT_BASE_URLS, ...config.baseUrls, }; const paths = { ...exports.DEFAULT_PATHS, ...config.paths, }; const usersVersion = config.usersVersion ?? 'v3'; const fitnessVersion = config.fitnessVersion ?? 'v6'; const usersBase = `${baseUrls.api}${paths.users}/${usersVersion}`; const fitnessBase = `${baseUrls.api}${paths.fitness}/${fitnessVersion}`; const generatedEndpoints = { LOGIN_PAGE: `${baseUrls.home}${paths.login}`, TOKEN: `${usersBase}${paths.token}`, USER_PROFILE: `${usersBase}${paths.userProfile}`, TOKEN_REFRESH: `${usersBase}${paths.tokenRefresh}`, USER_PREFERENCES: `${usersBase}${paths.userPreferences}`, WORKOUTS_LIST: `${fitnessBase}${paths.athletes}`, }; const endpoints = { ...generatedEndpoints, ...config.endpoints, }; return { baseUrls: { API: baseUrls.api, LOGIN: baseUrls.home, USERS: usersBase, APP: baseUrls.app, }, endpoints, origins: { APP: baseUrls.app, APP_WITH_SLASH: `${baseUrls.app}/`, }, }; }; exports.createApiUrls = createApiUrls; exports.DEFAULT_API_URLS = (0, exports.createApiUrls)(); exports.API_BASE_URLS = exports.DEFAULT_API_URLS.baseUrls; exports.API_ORIGINS = exports.DEFAULT_API_URLS.origins; exports.API_ENDPOINTS = exports.DEFAULT_API_URLS.endpoints; const generateWorkoutListUrl = (athleteId, startDate, endDate, config = {}) => { const apiUrls = (0, exports.createApiUrls)(config); return `${apiUrls.endpoints.WORKOUTS_LIST}/${encodeURIComponent(athleteId)}/workouts/${encodeURIComponent(startDate)}/${encodeURIComponent(endDate)}`; }; exports.generateWorkoutListUrl = generateWorkoutListUrl;