diff --git a/apps/journal/app/routes/api.sync.webhook.$provider.ts b/apps/journal/app/routes/api.sync.webhook.$provider.ts index fdf1b2e..adbc4d3 100644 --- a/apps/journal/app/routes/api.sync.webhook.$provider.ts +++ b/apps/journal/app/routes/api.sync.webhook.$provider.ts @@ -44,10 +44,13 @@ export async function action({ params, request }: Route.ActionArgs) { await updateTokens(connection.id, tokens); } - // Download and convert + // Download and convert (if file available) const workout = { id: event.workoutId, name: "", type: "", startedAt: "", duration: null, distance: null, fileUrl: event.fileUrl }; - const fileBuffer = await provider.downloadFile(tokens, workout); - const gpx = await provider.convertToGpx(fileBuffer); + let gpx: string | null = null; + if (workout.fileUrl) { + const fileBuffer = await provider.downloadFile(tokens, workout); + gpx = await provider.convertToGpx(fileBuffer); + } // Create activity const activityId = await createActivity(connection.userId, { diff --git a/apps/journal/app/routes/sync.import.$provider.tsx b/apps/journal/app/routes/sync.import.$provider.tsx index 7bf6f66..5d01e62 100644 --- a/apps/journal/app/routes/sync.import.$provider.tsx +++ b/apps/journal/app/routes/sync.import.$provider.tsx @@ -86,8 +86,11 @@ export async function action({ params, request }: Route.ActionArgs) { fileUrl: fileUrl || undefined, }; - const fileBuffer = await provider.downloadFile(tokens, workout); - const gpx = await provider.convertToGpx(fileBuffer); + let gpx: string | null = null; + if (workout.fileUrl) { + const fileBuffer = await provider.downloadFile(tokens, workout); + gpx = await provider.convertToGpx(fileBuffer); + } const activityId = await createActivity(user.id, { name: workoutName || `${provider.name} workout`,