Inheritance: extends eZ\Publish\Core\REST\Common\Output\ValueObjectVisitor
Example #1
0
 /**
  * Visit struct returned by controllers.
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param Policy|PolicyDraft $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('Policy');
     $visitor->setHeader('Content-Type', $generator->getMediaType($data instanceof PolicyDraft ? 'PolicyDraft' : 'Policy'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('PolicyUpdate'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadPolicy', array('roleId' => $data->roleId, 'policyId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('id', $data->id);
     $generator->endValueElement('id');
     if ($data instanceof PolicyDraft) {
         $generator->startValueElement('originalId', $data->originalId);
         $generator->endValueElement('originalId');
     }
     $generator->startValueElement('module', $data->module);
     $generator->endValueElement('module');
     $generator->startValueElement('function', $data->function);
     $generator->endValueElement('function');
     $limitations = $data->getLimitations();
     if (!empty($limitations)) {
         $generator->startHashElement('limitations');
         $generator->startList('limitation');
         foreach ($limitations as $limitation) {
             $this->visitLimitation($generator, $limitation);
         }
         $generator->endList('limitation');
         $generator->endHashElement('limitations');
     }
     $generator->endObjectElement('Policy');
 }
 /**
  * Visit struct returned by controllers.
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param \eZ\Publish\Core\REST\Server\Values\CreatedPolicy $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     parent::visit($visitor, $generator, $data->policy);
     $visitor->setHeader('Location', $this->router->generate('ezpublish_rest_loadPolicy', array('roleId' => $data->policy->roleId, 'policyId' => $data->policy->id)));
     $visitor->setStatus(201);
 }