/** * Adds a medium of given provider * If you need to upload a file (depends on the provider) you will need to do so by sending content as a multipart/form-data HTTP Request * See documentation for more details. * * @ApiDoc( * resource=true, * input={"class"="sonata_media_api_form_media", "name"="", "groups"={"sonata_api_write"}}, * output={"class"="Sonata\MediaBundle\Model\Media", "groups"={"sonata_api_read"}}, * statusCodes={ * 200="Returned when successful", * 400="Returned when an error has occurred while medium creation", * 404="Returned when unable to find medium" * } * ) * * @Route(requirements={"provider"="[A-Za-z0-9.]*"}) * * @param string $provider A media provider * @param Request $request A Symfony request * * @return Media * * @throws NotFoundHttpException */ public function postProviderMediumAction($provider, Request $request) { $medium = $this->mediaManager->create(); $medium->setProviderName($provider); try { $mediaProvider = $this->mediaPool->getProvider($provider); } catch (\RuntimeException $ex) { throw new NotFoundHttpException($ex->getMessage(), $ex); } return $this->handleWriteMedium($request, $medium, $mediaProvider); }