/** * @param $data * @param $albumId * * @return $this * @throws \Yandex\Fotki\Exception\Api\Photo */ public function sendPhoto($data, $albumId) { if ($albumId) { $apiUrl = sprintf("http://api-fotki.yandex.ru/api/users/%s/album/%s/photos/?format=json", $this->_login, trim($albumId)); } else { $apiUrl = sprintf("http://api-fotki.yandex.ru/api/users/%s/photos/?format=json", $this->_login); } $photo = new \Yandex\Fotki\Api\Photo($this->_transport, $apiUrl); return $photo->upload($data); }
/** * @param \Yandex\Fotki\Api\Photo $photo * * @return bool */ public function filter(Photo $photo) { return $photo->getTitle() == $this->filterTitle; }
/** * Редактирование фотографии * * <h1>Примеры</h1> * * <h2>Изменение заголовка</h2> * <code> * <?php * $photo = $api->getPhoto(12345678)->load(); * $photo->setTitle('Новое название'); * * $updatedPhoto = $api->updatePhoto($photo)->load(); * echo $updatedPhoto->getTitle(); * ?> * </code> * * <h2>Изменение ссылки на родительский альбом</h2> * <code> * <?php * $photo = $api->getPhoto(12345678)->load(); * $photo->setAlbumId(654321); * * $updatedPhoto = $api->updatePhoto($photo)->load(); * echo $updatedPhoto->getAlbumId(); * ?> * </code> * * @param \Yandex\Fotki\Api\Photo $photo * * @return \Yandex\Fotki\Api\Photo Фотография, которую нужно обновить * @throws \Yandex\Fotki\Exception\Api\Photo Если призошла ошибка во время запроса на обновление * @throws \Yandex\Fotki\Exception\InvalidCall Если произошла ошибка при геренации XML */ public function updatePhoto(Photo $photo) { $oAuthToken = $this->_transport->getOAuthToken(); $fimpToken = $this->_transport->getFimpToken(); $body = $photo->getAtomEntryForSave()->asXML(); $headers = array('Authorization' => $oAuthToken ? "OAuth {$oAuthToken}" : "FimpToken realm=\"fotki.yandex.ru\", token=\"{$fimpToken}\"", 'Content-Type' => 'application/atom+xml; type=entry'); $response = Request::put($photo->getApiUrlEdit(), $headers, $body); if ($response->code === 200) { $url = sprintf("http://api-fotki.yandex.ru/api/users/%s/photo/%s/?format=json", $this->_login, intval($photo->getId())); return new Photo($this->_transport, $url); } else { throw new \Yandex\Fotki\Exception\Api\Photo($response->body, $response->code); } }