/**
* Retrieves a collection of resources.
*
* @param Request $request The request
* @param int $id The ID of the part
*
* @return array|\Dunglas\ApiBundle\Model\PaginatorInterface|\Traversable
*
* @throws RuntimeException|RootNodeNotFoundException
*/
public function __invoke(Request $request, $id)
{
list($resourceType) = $this->extractAttributes($request);
$part = $this->getItem($this->dataProvider, $resourceType, $id);
/**
* @var $part Part
*/
$quantity = $request->request->get("quantity");
$user = $this->userService->getUser();
$stock = new StockEntry(intval($quantity), $user);
if ($request->request->has("price") && $request->request->get("price") !== null) {
$stock->setPrice(floatval($request->request->get("price")));
}
if ($request->request->has("comment") && $request->request->get("comment") !== null) {
$stock->setComment($request->request->get("comment"));
}
$part->addStockEntry($stock);
$this->registry->getManager()->persist($stock);
$this->registry->getManager()->flush();
return $part;
}