55use Application \Form \Type \DinosaurType ;
66use Application \Form \Type \SearchType ;
77use Application \MessageBus \CommandBus ;
8+ use Application \MessageBus \EventBus ;
89use Application \MessageBus \QueryBus ;
10+ use Domain \Event \DinosaurIsBorn ;
911use Domain \Exception \DinosaurNotFoundException ;
1012use Domain \Query \GetSingleDinosaur ;
1113use Domain \Query \GetAllDinosaurs ;
@@ -22,7 +24,8 @@ class DinosaursController extends AbstractController
2224{
2325 public function __construct (
2426 private CommandBus $ commandBus ,
25- private QueryBus $ queryBus
27+ private QueryBus $ queryBus ,
28+ private EventBus $ eventBus
2629 ) {}
2730
2831 #[Route('/dinosaurs ' , name: 'app_list_dinosaurs ' )]
@@ -54,15 +57,10 @@ public function list(Request $request): Response
5457 )]
5558 public function single (string $ id ): Response
5659 {
57- $ dinosaur = $ this
58- ->dinosaursCollection
59- ->find ($ id )
60- ;
61-
62- if ($ dinosaur === false ) {
63- throw $ this ->createNotFoundException (
64- 'The dinosaur you are looking for does not exists. '
65- );
60+ try {
61+ $ dinosaur = $ this ->queryBus ->dispatch (new GetSingleDinosaur \Query ($ id ));
62+ } catch (DinosaurNotFoundException $ e ) {
63+ throw $ this ->createNotFoundException ();
6664 }
6765
6866 return $ this ->render ('dinosaur.html.twig ' , [
0 commit comments