UNPKG

@gooin/garmin-connect

Version:

Makes it simple to interface with Garmin Connect to get or set any data point

84 lines (83 loc) 4.25 kB
import { HttpClient } from '../common/HttpClient'; import { UrlClass } from './UrlClass'; import { ExportFileTypeValue, GarminDomain, ICalendar, ICountActivities, IGarminTokens, IOauth1Token, IOauth2Token, IScheduleWorkout, ISocialProfile, IUserSettings, IWorkout, IWorkoutDetail, UploadFileTypeTypeValue, GCConfig } from './types'; import { ActivitySubType, ActivityType, GCActivityId, IActivity } from './types/activity'; import { ICourse, ICourseDetail } from './types/course'; import { SleepData, SleepDailySummary } from './types/sleep'; import { HRVData } from './types/hrv'; import { LatestTrainingStatusResponse, TrainingLoadBalanceResponse, WeeklyTrainingStatusResponse } from './types/training-status'; import { PersonalInfoResponse } from './types/personal-info'; import Running from './workouts/Running'; export interface Session { } export default class GarminConnect { client: HttpClient; domain: GarminDomain; config: GCConfig; private _userHash; private listeners; url: UrlClass; constructor(config: GCConfig, domain?: GarminDomain); login(username?: string, password?: string, sessionId?: string): Promise<GarminConnect>; exportTokenToFile(dirPath: string): Promise<void>; loadTokenByFile(dirPath: string): Promise<void>; exportToken(): IGarminTokens; loadToken(oauth1: IOauth1Token, oauth2: IOauth2Token): void; getUserSettings(): Promise<IUserSettings>; getUserProfile(): Promise<ISocialProfile>; getActivities(start?: number, limit?: number, activityType?: ActivityType, subActivityType?: ActivitySubType): Promise<IActivity[]>; getActivity(activity: { activityId: GCActivityId; }): Promise<IActivity>; countActivities(): Promise<ICountActivities>; downloadWellnessData(date: Date, dir: string): Promise<void>; downloadOriginalActivityData(activity: { activityId: GCActivityId; }, dir: string, type?: ExportFileTypeValue): Promise<void>; uploadActivity(file: string, format?: UploadFileTypeTypeValue): Promise<unknown>; deleteActivity(activity: { activityId: GCActivityId; }): Promise<void>; getWorkouts(start: number, limit: number): Promise<IWorkout[]>; getWorkoutDetail(workout: { workoutId: string; }): Promise<IWorkoutDetail>; addWorkout(workout: IWorkoutDetail | Running): Promise<IWorkoutDetail>; addRunningWorkout(name: string, meters: number, description: string): Promise<IWorkoutDetail>; deleteWorkout(workout: { workoutId: string; }): Promise<unknown>; scheduleWorkout(workout: { workoutId: string; }, date?: Date): Promise<IScheduleWorkout>; getCalendar(year?: number, month?: number): Promise<ICalendar>; getSteps(date?: Date): Promise<number>; getSleepData(date?: Date): Promise<SleepData>; getSleepDuration(date?: Date): Promise<{ hours: number; minutes: number; }>; getSleepDailySummary(startDate: Date, endDate: Date): Promise<SleepDailySummary>; getHRVData(date?: Date): Promise<HRVData>; getTrainingStatus(date?: Date): Promise<LatestTrainingStatusResponse>; getTrainingLoadBalance(date?: Date): Promise<TrainingLoadBalanceResponse>; getWeeklyTrainingStatus(startDate: Date, endDate: Date): Promise<WeeklyTrainingStatusResponse>; getPersonalInfo(): Promise<PersonalInfoResponse>; getDailyWeightData(date?: Date): Promise<WeightData>; getDailyWeightInPounds(date?: Date): Promise<number>; getDailyHydration(date?: Date): Promise<number>; updateWeight(date: Date | undefined, lbs: number, timezone: string): Promise<UpdateWeight>; updateHydrationLogOunces(date: Date | undefined, valueInOz: number): Promise<WaterIntake>; getGolfSummary(): Promise<GolfSummary>; getGolfScorecard(scorecardId: number): Promise<GolfScorecard>; getHeartRate(date?: Date): Promise<HeartRate>; getCourses(): Promise<ICourse[]>; getCourse(course: { courseId: number; }): Promise<ICourseDetail>; createCourse(course: ICourseDetail): Promise<ICourseDetail>; consentGrant(): Promise<void>; get<T>(url: string, data?: any): Promise<T>; post<T>(url: string, data: any): Promise<T>; put<T>(url: string, data: any): Promise<T>; }