eZ\Publish\Core\REST\Server\Controller\Trash::restoreTrashItem PHP Метод

restoreTrashItem() публичный Метод

Restores a trashItem.
public restoreTrashItem ( $trashItemId, Request $request ) : ResourceCreated
$trashItemId
$request Symfony\Component\HttpFoundation\Request
Результат eZ\Publish\Core\REST\Server\Values\ResourceCreated
    public function restoreTrashItem($trashItemId, Request $request)
    {
        $requestDestination = null;
        try {
            $requestDestination = $request->headers->get('Destination');
        } catch (InvalidArgumentException $e) {
            // No Destination header
        }
        $parentLocation = null;
        if ($request->headers->has('Destination')) {
            $locationPathParts = explode('/', $this->requestParser->parseHref($request->headers->get('Destination'), 'locationPath'));
            try {
                $parentLocation = $this->locationService->loadLocation(array_pop($locationPathParts));
            } catch (NotFoundException $e) {
                throw new ForbiddenException($e->getMessage());
            }
        }
        $trashItem = $this->trashService->loadTrashItem($trashItemId);
        if ($requestDestination === null) {
            // If we're recovering under the original location
            // check if it exists, to return "403 Forbidden" in case it does not
            try {
                $this->locationService->loadLocation($trashItem->parentLocationId);
            } catch (NotFoundException $e) {
                throw new ForbiddenException($e->getMessage());
            }
        }
        $location = $this->trashService->recover($trashItem, $parentLocation);
        return new Values\ResourceCreated($this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => trim($location->pathString, '/'))));
    }