Example #1
0
 /**
  * @param RequestInterface $request
  * @param ResponseInterface $response
  * @return ResponseInterface
  */
 public function dispatch(RequestInterface $request, ResponseInterface $response)
 {
     $criteria = $request->getCriteria();
     $changes = $request->getChanges();
     if ($this->criteriaValidator->isValid($criteria)) {
         if ($this->changesValidator->isValid($changes)) {
             $result = $this->service->handle($this->criteriaValidator->getValid(), $this->changesValidator->getValid());
             $response->setResult($result);
         } else {
             $response->setChangesErrors($this->changesValidator->getErrors());
         }
     } else {
         $response->setCriteriaErrors($this->criteriaValidator->getErrors());
     }
     $response->setCriteria($criteria);
     $response->setChanges($changes);
     $response->setValidCriteria($this->criteriaValidator->getValid());
     $response->setValidChanges($this->changesValidator->getValid());
     return $response;
 }