garmin-api-handler
Version:
Unofficial handler for Garmin connect API
337 lines (332 loc) • 8.8 kB
text/typescript
/* eslint-disable typescript-sort-keys/interface */
import { ActivityType, Category } from '../../constants';
export interface ApiDetailApiActivity {
accessControlRuleDTO: {
typeId: number;
typeKey: string;
};
activityId: number;
activityName: string;
activityTypeDTO: {
parentTypeId: number;
sortOrder: number;
typeId: number;
typeKey: ActivityType;
};
eventTypeDTO: {
sortOrder: number;
typeId: number;
typeKey: Category;
};
isMultiSportParent: boolean;
locationName: string;
metadataDTO: {
activityImages: [];
agentApplicationInstallationId: null;
agentString: null;
associatedCourseId: null;
associatedWorkoutId: null;
autoCalcCalories: boolean;
chartAvailability: {
showDistance: boolean;
showDuration: boolean;
showElevation: boolean;
showHeartRate: boolean;
showMovingDuration: boolean;
showMovingSpeed: boolean;
showSpeed: boolean;
showTimestamp: boolean;
};
childIds: [];
deviceApplicationInstallationId: number;
deviceMetaDataDTO: {
deviceId: null;
deviceTypePk: number;
deviceVersionPk: number;
};
diveNumber: null;
elevationCorrected: boolean;
favorite: boolean;
fileFormat: {
formatId: number;
formatKey: string;
};
gcj02: boolean;
hasChartData: boolean;
hasHrTimeInZones: boolean;
hasPolyline: boolean;
hasPowerTimeInZones: boolean;
isAtpActivity: null;
isOriginal: boolean;
lapCount: number;
lastUpdateDate: string;
manualActivity: boolean;
manufacturer: string;
personalRecord: boolean;
sensors: [{ manufacturer: string }];
uploadedDate: string;
userInfoDto: {
displayname: string;
fullname: string;
profileImageUrlLarge: null;
profileImageUrlMedium: null;
profileImageUrlSmall: null;
userPro: boolean;
userProfilePk: number;
};
videoUrl: null;
};
summaryDTO: {
averageHR: number;
averageMovingSpeed: number;
averageSpeed: number;
calories: number;
distance: number | null;
duration: number;
elapsedDuration: number;
elevationGain: number;
elevationLoss: number;
endLatitude: number;
endLongitude: number;
maxElevation: number;
maxHR: number;
maxSpeed: number;
maxVerticalSpeed: number;
minElevation: number;
movingDuration: number;
startLatitude: number;
startLongitude: number;
startTimeGMT: string;
startTimeLocal: string;
};
timeZoneUnitDTO: {
factor: number;
timeZone: string;
unitId: number;
unitKey: string;
};
userProfileId: number;
}
export interface ApiListApiActivity {
activeLengths: null;
activityId: number;
activityLikeAuthors: null;
activityLikeDisplayNames: null;
activityLikeFullNames: null;
activityName: string;
activityTrainingLoad: null;
activityType: {
parentTypeId: number;
sortOrder: number;
typeId: number;
typeKey: ActivityType;
};
aerobicTrainingEffect: null;
anaerobicTrainingEffect: null;
atpActivity: boolean;
autoCalcCalories: boolean;
averageBikingCadenceInRevPerMinute: null;
averageHR: number;
averageRunningCadenceInStepsPerMinute: null;
averageSpeed: number;
averageSwimCadenceInStrokesPerMinute: null;
averageSwolf: null;
avgAirSpeed: null;
avgCda: null;
avgDepth: null;
avgDoubleCadence: null;
avgFractionalCadence: null;
avgGroundContactBalance: null;
avgGroundContactTime: null;
avgLeftBalance: null;
avgPower: null;
avgRespirationRate: null;
avgStrideLength: null;
avgStrokeCadence: null;
avgStrokeDistance: null;
avgStrokes: null;
avgVerticalOscillation: null;
avgVerticalRatio: null;
avgVerticalSpeed: null;
avgWattsPerCda: null;
avgWindYawAngle: null;
beginTimestamp: number;
bottomTime: null;
calories: number;
caloriesConsumed: null;
caloriesEstimated: null;
commentedByUser: null;
comments: null;
conversationPk: null;
conversationUuid: null;
courseId: null;
decoDive: null;
description: null;
deviceId: number;
distance: number | null;
diveNumber: null;
duration: number;
elapsedDuration: number;
elevationCorrected: boolean;
elevationGain: number;
elevationLoss: number;
endCns: null;
endLatitude: null;
endLongitude: null;
endN2: null;
eventType: {
sortOrder: number;
typeId: number;
typeKey: Category;
};
excludeFromPowerCurveReports: null;
favorite: boolean;
floorsClimbed: null;
floorsDescended: null;
flow: null;
grit: null;
hasPolyline: boolean;
hasVideo: boolean;
intensityFactor: null;
jumpCount: null;
lactateThresholdBpm: null;
lactateThresholdSpeed: null;
lapCount: number;
leftBalance: null;
likedByUser: null;
locationName: string;
manufacturer: null;
max20MinPower: null;
maxAirSpeed: null;
maxAvgPower_1: null;
maxAvgPower_10: null;
maxAvgPower_120: null;
maxAvgPower_1200: null;
maxAvgPower_1800: null;
maxAvgPower_18000: null;
maxAvgPower_2: null;
maxAvgPower_20: null;
maxAvgPower_30: null;
maxAvgPower_300: null;
maxAvgPower_3600: null;
maxAvgPower_5: null;
ownerDisplayName: string;
maxAvgPower_600: null;
summarizedExerciseSets: [];
maxDepth: null;
ownerId: number;
surfaceInterval: null;
maxDoubleCadence: null;
maxPower: null;
maxFractionalCadence: null;
maxFtp: null;
summarizedDiveInfo: {
weight: null;
weightUnit: null;
visibility: null;
visibilityUnit: null;
surfaceCondition: null;
current: null;
waterType: null;
waterDensity: null;
summarizedDiveGases: [];
totalSurfaceTime: number;
};
userRoles: string[];
maxRespirationRate: null;
maxVerticalSpeed: number;
maxSpeed: number;
ownerProfileImageUrlMedium: null;
ownerProfileImageUrlSmall: null;
maxTemperature: null;
maxBikingCadenceInRevPerMinute: null;
minAirSpeed: null;
minCda: null;
minElevation: number;
minStrokes: null;
steps: null;
movingDuration: number;
normPower: null;
numberOfActivityComments: null;
numberOfActivityLikes: null;
maxCda: null;
ownerFullName: string;
maxSwimCadenceInStrokesPerMinute: null;
ownerProfileImageUrlLarge: null;
rightBalance: null;
videoUrl: null;
ownerProfilePk: null;
startLatitude: number;
parentId: null;
poolLength: null;
pr: boolean;
trainingStressScore: null;
purposeful: boolean;
requestorRelationship: null;
privacy: {
typeId: number;
typeKey: string;
};
sportTypeId: number;
startCns: null;
maxHR: number;
startLongitude: number;
startN2: null;
maxStrokeCadence: null;
startTimeLocal: string;
minTemperature: null;
strokes: null;
maxRunningCadenceInStepsPerMinute: null;
userPro: boolean;
workoutId: null;
startTimeGMT: string;
totalReps: number;
totalSets: number;
trainingEffectLabel: null;
waterEstimated: null;
unitOfPoolLength: null;
maxAvgPower_7200: null;
timeZoneId: number;
maxAvgPower_60: null;
vO2MaxValue: null;
waterConsumed: null;
maxElevation: number;
parent: boolean;
}
export interface ApiGearResponse {
createDate: string;
customMakeModel: string;
dateBegin: string;
dateEnd: null;
displayName: string;
gearMakeName: string;
gearModelName: string;
gearPk: number;
gearStatusName: string;
gearTypeName: string;
imageNameLarge: null;
imageNameMedium: null;
imageNameSmall: null;
maximumMeters: number;
notified: boolean;
updateDate: string;
userProfilePk: number;
uuid: string;
}
export interface ApiActivityPoints {
activityDetailMetrics: {
metrics: number[];
}[];
activityId: number;
measurementCount: number;
metricDescriptors: {
key: string;
metricsIndex: number;
unit: {
factor: number;
id: 40;
key: string;
};
}[];
metricsCount: number;
}