public function updateLocation($locationPath, Request $request)
{
$locationUpdate = $this->inputDispatcher->parse(new Message(array('Content-Type' => $request->headers->get('Content-Type')), $request->getContent()));
$location = $this->locationService->loadLocation($this->extractLocationIdFromPath($locationPath));
// First handle hiding/unhiding so that updating location afterwards
// will return updated location with hidden/visible status correctly updated
// Exact check for true/false is needed as null signals that no hiding/unhiding
// is to be performed
if ($locationUpdate->hidden === true) {
$this->locationService->hideLocation($location);
} elseif ($locationUpdate->hidden === false) {
$this->locationService->unhideLocation($location);
}
return new Values\RestLocation($location = $this->locationService->updateLocation($location, $locationUpdate->locationUpdateStruct), $this->locationService->getLocationChildCount($location));
}