garmin-api-handler
Version:
Unofficial handler for Garmin connect API
31 lines (30 loc) • 1.5 kB
TypeScript
/// <reference types="node" />
import CookieApi from 'cookie-api-handler';
import { DateTime } from 'luxon';
import Activity from './models/Activity';
import { ApiActivityPoints, ApiDetailApiActivity, ApiGearResponse } from './types/api';
export interface ActivityFilters {
endDate?: DateTime;
limit?: number;
startDate?: DateTime;
}
export default class GarminApi extends CookieApi<any> {
protected session?: string;
constructor(session?: string);
setSession(session?: string): this;
getSession(): string | undefined;
login(email: string, password: string): Promise<string>;
getActivity(id: number): Promise<Activity<number, ApiDetailApiActivity>>;
getPoints(id: number): Promise<ApiActivityPoints>;
getActivityGpx(id: number): Promise<string>;
getActivityFile(id: number): Promise<Blob>;
getActivities(filter: ActivityFilters): Promise<Activity[]>;
logWeight(date: DateTime, kg: number): Promise<any>;
upload(fileContent: string | Buffer, format: 'gpx' | 'fit'): Promise<number>;
uploadGpx(gpx: string): Promise<number>;
createActivity(activity: Activity<undefined, undefined>): Promise<Activity<number, any>>;
updateActivity(activity: Activity<number>): Promise<Activity<number, any>>;
protected activityUpdater(activity: Activity<number | undefined>): Promise<Activity<number>>;
addGear(activityId: number, gear: string): Promise<ApiGearResponse>;
getGears(activityId: number): Promise<ApiGearResponse[]>;
}