@gooin/garmin-connect
Version:
Makes it simple to interface with Garmin Connect to get or set any data point
74 lines (73 loc) • 3.5 kB
TypeScript
import { HttpClient } from '../common/HttpClient';
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 } from './types/sleep';
import Running from './workouts/Running';
export interface Session {
}
export default class GarminConnect {
client: HttpClient;
domain: GarminDomain;
config: GCConfig;
private _userHash;
private listeners;
private url;
constructor(config: GCConfig, domain?: GarminDomain);
login(username?: string, password?: 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;
}>;
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>;
consenGrant(): 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>;
}