Sporadic set logging added

This commit is contained in:
AG
2025-11-29 19:03:42 +02:00
parent d86abd6b1b
commit b5c8e8ac43
15 changed files with 1491 additions and 396 deletions

68
services/sporadicSets.ts Normal file
View File

@@ -0,0 +1,68 @@
import { api } from './api';
import { SporadicSet } from '../types';
export async function getSporadicSets(): Promise<SporadicSet[]> {
try {
const response = await api.get('/sporadic-sets');
if (response.success) {
return response.sporadicSets || [];
}
return [];
} catch (error) {
console.error('Failed to fetch sporadic sets:', error);
return [];
}
}
export async function logSporadicSet(setData: {
exerciseId: string;
weight?: number;
reps?: number;
durationSeconds?: number;
distanceMeters?: number;
height?: number;
bodyWeightPercentage?: number;
note?: string;
}): Promise<SporadicSet | null> {
try {
const response = await api.post('/sporadic-sets', setData);
if (response.success) {
return response.sporadicSet;
}
return null;
} catch (error) {
console.error('Failed to log sporadic set:', error);
return null;
}
}
export async function updateSporadicSet(id: string, setData: {
weight?: number;
reps?: number;
durationSeconds?: number;
distanceMeters?: number;
height?: number;
bodyWeightPercentage?: number;
note?: string;
}): Promise<SporadicSet | null> {
try {
const response = await api.put(`/sporadic-sets/${id}`, setData);
if (response.success) {
return response.sporadicSet;
}
return null;
} catch (error) {
console.error('Failed to update sporadic set:', error);
return null;
}
}
export async function deleteSporadicSet(id: string): Promise<boolean> {
try {
const response = await api.delete(`/sporadic-sets/${id}`);
return response.success || false;
} catch (error) {
console.error('Failed to delete sporadic set:', error);
return false;
}
}