more work
This commit is contained in:
@@ -3,7 +3,7 @@ import {
|
||||
getWorkoutsByMonth,
|
||||
getTodaysWorkouts,
|
||||
getWeeksWorkouts,
|
||||
markWorkoutComplete,
|
||||
completeWorkout as apiCompleteWorkout,
|
||||
} from '../services/api';
|
||||
import type { ApiWorkout } from '../types/api';
|
||||
import type { Workout, WorkoutInterval } from '../types/workout';
|
||||
@@ -166,17 +166,19 @@ export function useCalendarWorkouts(): UseCalendarWorkoutsReturn {
|
||||
maxPower?: number;
|
||||
maxHr?: number;
|
||||
caloriesBurned?: number;
|
||||
syncToStrava?: boolean;
|
||||
}
|
||||
) => {
|
||||
try {
|
||||
await markWorkoutComplete(workoutId, {
|
||||
duration: Math.round(metrics.duration / 60),
|
||||
await apiCompleteWorkout(workoutId, {
|
||||
duration: Math.round(metrics.duration),
|
||||
distance: metrics.distance,
|
||||
avg_power: metrics.avgPower,
|
||||
avg_hr: metrics.avgHr,
|
||||
max_power: metrics.maxPower,
|
||||
max_hr: metrics.maxHr,
|
||||
calories_burned: metrics.caloriesBurned,
|
||||
sync_to_strava: metrics.syncToStrava ?? true,
|
||||
});
|
||||
await refresh();
|
||||
} catch (err) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { api } from './client';
|
||||
import type { ApiWorkout, WorkoutTemplate, WorkoutUpdatePayload } from '../../types/api';
|
||||
import type { ApiWorkout, WorkoutTemplate, WorkoutUpdatePayload, WorkoutCompletionPayload } from '../../types/api';
|
||||
|
||||
export async function getWorkouts(): Promise<ApiWorkout[]> {
|
||||
return api.get<ApiWorkout[]>('/protected/workouts');
|
||||
@@ -35,6 +35,13 @@ export async function markWorkoutComplete(
|
||||
});
|
||||
}
|
||||
|
||||
export async function completeWorkout(
|
||||
id: number,
|
||||
completionData: WorkoutCompletionPayload
|
||||
): Promise<ApiWorkout> {
|
||||
return api.post<ApiWorkout>(`/protected/workouts/complete?id=${id}`, completionData);
|
||||
}
|
||||
|
||||
export async function skipWorkout(id: number, notes?: string): Promise<ApiWorkout> {
|
||||
return api.put<ApiWorkout>(`/protected/workouts?id=${id}`, {
|
||||
status: 'skipped',
|
||||
|
||||
@@ -151,3 +151,15 @@ export interface WorkoutUpdatePayload {
|
||||
calories_burned?: number;
|
||||
notes?: string;
|
||||
}
|
||||
|
||||
export interface WorkoutCompletionPayload {
|
||||
duration: number;
|
||||
distance?: number;
|
||||
avg_power?: number;
|
||||
avg_hr?: number;
|
||||
max_power?: number;
|
||||
max_hr?: number;
|
||||
calories_burned?: number;
|
||||
notes?: string;
|
||||
sync_to_strava?: boolean;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user