55namespace Tests \Tempest \Fixtures \Controllers ;
66
77use Tempest \Http \Response ;
8+ use Tempest \Http \Responses \Json ;
89use Tempest \Http \Responses \Ok ;
910use Tempest \Http \Responses \Redirect ;
1011use Tempest \Router \Get ;
1112use Tempest \Router \Post ;
13+ use Tests \Tempest \Fixtures \Modules \Books \Models \Book ;
14+ use Tests \Tempest \Fixtures \Requests \BookRequest ;
1215
1316use function Tempest \uri ;
1417
@@ -25,4 +28,38 @@ public function store(RequestForValidationController $request): Response // @mag
2528 {
2629 return new Redirect (uri ([self ::class, 'get ' ]));
2730 }
31+
32+ #[Get(uri: '/test-validation-responses-json/{book} ' )]
33+ public function book (Book $ book ): Response
34+ {
35+ $ book ->load ('author ' );
36+
37+ return new Json ([
38+ 'id ' => $ book ->id ->id ,
39+ 'title ' => $ book ->title ,
40+ 'author ' => [
41+ 'id ' => $ book ->author ->id ->id ,
42+ 'name ' => $ book ->author ->name ,
43+ ],
44+ ]);
45+ }
46+
47+ #[Post(uri: '/test-validation-responses-json/{book} ' )]
48+ public function updateBook (BookRequest $ request , Book $ book ): Response
49+ {
50+ $ book ->load ('author ' );
51+
52+ $ book ->update (title: $ request ->get ('title ' ));
53+
54+ return new Json ([
55+ 'id ' => $ book ->id ->id ,
56+ 'title ' => $ book ->title ,
57+ 'author ' => [
58+ 'id ' => $ book ->author ->id ->id ,
59+ 'name ' => $ book ->author ->name ,
60+ ],
61+ 'chapters ' => $ book ->chapters ,
62+ 'isbn ' => $ book ->isbn ,
63+ ]);
64+ }
2865}
0 commit comments