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 ;
1215use Tests \Tempest \Fixtures \Requests \ValidationRequest ;
1316
1417use function Tempest \uri ;
@@ -26,4 +29,38 @@ public function store(ValidationRequest $request): Response // @mago-expect best
2629 {
2730 return new Redirect (uri ([self ::class, 'get ' ]));
2831 }
32+
33+ #[Get(uri: '/test-validation-responses-json/{book} ' )]
34+ public function book (Book $ book ): Response
35+ {
36+ $ book ->load ('author ' );
37+
38+ return new Json ([
39+ 'id ' => $ book ->id ->id ,
40+ 'title ' => $ book ->title ,
41+ 'author ' => [
42+ 'id ' => $ book ->author ->id ->id ,
43+ 'name ' => $ book ->author ->name ,
44+ ],
45+ ]);
46+ }
47+
48+ #[Post(uri: '/test-validation-responses-json/{book} ' )]
49+ public function updateBook (BookRequest $ request , Book $ book ): Response
50+ {
51+ $ book ->load ('author ' );
52+
53+ $ book ->update (title: $ request ->get ('title ' ));
54+
55+ return new Json ([
56+ 'id ' => $ book ->id ->id ,
57+ 'title ' => $ book ->title ,
58+ 'author ' => [
59+ 'id ' => $ book ->author ->id ->id ,
60+ 'name ' => $ book ->author ->name ,
61+ ],
62+ 'chapters ' => $ book ->chapters ,
63+ 'isbn ' => $ book ->isbn ,
64+ ]);
65+ }
2966}
0 commit comments