public function find($id)
{
$this->beforeHandle();
$this->beforeHandleRead();
$this->beforeHandleFind($id);
$item = $this->getFindData($id);
if (!$item) {
return $this->onItemNotFound($id);
}
if (!$this->findAllowed($id, $item)) {
return $this->onNotAllowed();
}
$response = $this->getFindResponse($item);
$this->afterHandleFind($item, $response);
$this->beforeHandleRead();
$this->afterHandle();
return $response;
}