Files
2026-06-07 17:43:45 +03:00

37 lines
1.0 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Controllers;
use App\Repositories\ProductRepository;
final class CartController
{
public function sync(): void
{
header('Content-Type: application/json; charset=utf-8');
$payload = json_decode((string) file_get_contents('php://input'), true);
$items = is_array($payload) && isset($payload['items']) && is_array($payload['items'])
? $payload['items']
: [];
if ($items === []) {
echo json_encode(['items' => []], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
return;
}
try {
$snapshots = (new ProductRepository())->cartSnapshots($items);
echo json_encode(['items' => $snapshots], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
} catch (\Throwable) {
http_response_code(500);
echo json_encode([
'items' => [],
'error' => 'cart_sync_failed',
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
}
}
}