From 8a90c5bab41b277bcae3e20b4caab579cc1b5312 Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Sun, 19 Apr 2026 23:37:40 +0300 Subject: [PATCH] refactor bulk create nodes controller to catch BadRequestException --- app/Node/NodeController.php | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/app/Node/NodeController.php b/app/Node/NodeController.php index fee4d13..bb3aa30 100644 --- a/app/Node/NodeController.php +++ b/app/Node/NodeController.php @@ -82,25 +82,10 @@ class NodeController ): Response { $data = json_decode((string) $request->getBody(), true) ?? []; - $titlePrefix = trim($data['titlePrefix'] ?? ''); - if ($titlePrefix === '') { - $response->getBody()->write(json_encode(['error' => 'Title prefix is required'])); - return $response->withStatus(400)->withHeader('Content-Type', 'application/json'); - } - - $count = isset($data['count']) ? (int) $data['count'] : 0; - if ($count < 1) { - $response->getBody()->write(json_encode(['error' => 'Count must be at least 1'])); - return $response->withStatus(400)->withHeader('Content-Type', 'application/json'); - } - - if (!isset($data['parentNodeId']) || $data['parentNodeId'] === null) { - $response->getBody()->write(json_encode(['error' => 'parentNodeId is required'])); - return $response->withStatus(400)->withHeader('Content-Type', 'application/json'); - } - - $textId = (int) ($data['textId'] ?? 0); - $parentNodeId = (int) $data['parentNodeId']; + $textId = isset($data['textId']) ? (int) $data['textId'] : null; + $parentNodeId = isset($data['parentNodeId']) ? (int) $data['parentNodeId'] : null; + $titlePrefix = isset($data['titlePrefix']) ? (string) $data['titlePrefix'] : null; + $count = isset($data['count']) ? (int) $data['count'] : null; try { $nodes = $bulkCreateNodesUseCase->execute(new BulkCreateNodesRequest( @@ -109,6 +94,9 @@ class NodeController titlePrefix: $titlePrefix, count: $count, )); + } catch (BadRequestException $e) { + $response->getBody()->write(json_encode(['error' => $e->getMessage()])); + return $response->withStatus(400)->withHeader('Content-Type', 'application/json'); } catch (DomainException $e) { $response->getBody()->write(json_encode(['error' => $e->getMessage()])); return $response->withStatus(404)->withHeader('Content-Type', 'application/json');