workout-session.service.ts 1.0 KB

12345678910111213141516171819202122232425262728
  1. import { workoutSessionLocal } from "./workout-session.local";
  2. import { workoutSessionApi } from "./workout-session.api";
  3. import type { WorkoutSession } from "./types/workout-session";
  4. // TODO: replace with auth context
  5. function isUserLoggedIn(): boolean {
  6. return !!localStorage.getItem("userToken");
  7. }
  8. export const workoutSessionService = {
  9. getAll: async (): Promise<WorkoutSession[]> => {
  10. if (isUserLoggedIn()) return workoutSessionApi.getAll();
  11. return workoutSessionLocal.getAll();
  12. },
  13. add: async (session: WorkoutSession) => {
  14. if (isUserLoggedIn()) return workoutSessionApi.create(session);
  15. return workoutSessionLocal.add(session);
  16. },
  17. update: async (id: string, data: Partial<WorkoutSession>) => {
  18. if (isUserLoggedIn()) return workoutSessionApi.update(id, data);
  19. return workoutSessionLocal.update(id, data);
  20. },
  21. complete: async (id: string) => {
  22. if (isUserLoggedIn()) return workoutSessionApi.complete(id);
  23. return workoutSessionLocal.update(id, { status: "completed", endedAt: new Date().toISOString() });
  24. },
  25. };