Пример #1
0
 public function testInitialState()
 {
     $this->assertSame($this->resource, $this->event->getResource());
     $this->assertSame($this->form, $this->event->getForm());
     $this->assertSame($this->statusCode, $this->event->getStatusCode());
     $this->assertNull($this->event->getView());
 }
Пример #2
0
 /**
  * @param ActionEvent $event
  */
 public function onAction(ActionEvent $event)
 {
     if (!$this->getParameterResolver()->resolveApi()) {
         return;
     }
     $form = $event->getForm();
     if ($form === null) {
         $view = View::create();
     } elseif (!$form->isValid()) {
         $view = View::create($form, Response::HTTP_BAD_REQUEST);
     } else {
         $headers = [];
         $statusCode = $event->getStatusCode();
         $data = $statusCode === Response::HTTP_NO_CONTENT ? null : $form->getData();
         if ($statusCode === Response::HTTP_CREATED) {
             $headers['Location'] = $this->urlGenerator->generate($this->getParameterResolver()->resolveLocationRoute(), $this->getParameterResolver()->resolveLocationRouteParameters($form->getData()));
         }
         $view = View::create($data, $statusCode, $headers);
     }
     $event->setView($view);
 }