feat: try sync calories

This commit is contained in:
2026-05-20 17:06:32 +02:00
parent 3d240eca81
commit 75b2743e75
3 changed files with 79 additions and 2 deletions
+14 -2
View File
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use App\Enums\WorkoutSource;
use App\Http\Requests\StravaCallbackRequest;
use App\Http\Requests\StravaSyncRequest;
use App\Models\StravaConnection;
use App\Models\WorkoutSessions;
use App\Services\StravaClient;
use Illuminate\Http\JsonResponse;
@@ -111,11 +112,13 @@ class StravaController extends Controller
], 422);
}
$activities = $strava->activities(
$activities = collect($strava->activities(
$connection,
$request->integer('page', 1),
$request->integer('per_page', 30),
);
))
->map(fn (array $activity): array => $this->activityForStorage($strava, $connection, $activity))
->all();
$importedCount = collect($activities)
->map(fn (array $activity): WorkoutSessions => $this->storeActivity($request, $activity))
@@ -144,6 +147,15 @@ class StravaController extends Controller
]);
}
private function activityForStorage(StravaClient $strava, StravaConnection $connection, array $activity): array
{
if (array_key_exists('calories', $activity) || empty($activity['id'])) {
return $activity;
}
return array_replace($activity, $strava->activity($connection, $activity['id']));
}
private function canReadActivities(array $scopes): bool
{
return in_array('activity:read', $scopes, true)