lib/unsplash/photo.rb in unsplash-1.5.6 vs lib/unsplash/photo.rb in unsplash-2.0.0
- old
+ new
@@ -15,56 +15,42 @@
def unlike!
connection.delete("/photos/#{id}/like")
true
end
- # Download a photo.
+ # Track the download of a photo.
# @return [String] URL of image file for download.
- def download!
+ def track_download
connection.get(links.download_location)["url"]
end
class << self
# Get a photo. Can be cropped or resized using the optional parameters.
# @param id [String] The ID of the photo to retrieve.
- # @param width [Integer] Width of customized version of the photo.
- # @param height [Integer] Height of the customized version of the photo.
- # @param crop_rect [String] A comma-separated list (x,y,width,height) of the rectangle to crop from the photo.
# @return [Unsplash::Photo] The Unsplash Photo.
- def find(id, width: nil, height: nil, crop_rect: nil)
- custom = {
- w: width,
- h: height,
- rect: crop_rect
- }.select { |k,v| v }
- photo = Unsplash::Photo.new JSON.parse(connection.get("/photos/#{id}", custom).body)
+ def find(id)
+ photo = Unsplash::Photo.new JSON.parse(connection.get("/photos/#{id}").body)
photo.user = Unsplash::User.new photo.user
photo
end
# Get a random photo or set of photos. The photo selection pool can be narrowed using
# a combination of optional parameters. Can also optionally specify a custom image size.
# @param count [Integer] Number of photos required. Default=1, Max=30
- # @param categories [Array] Limit selection to given category ID's.
# @param featured [Boolean] Limit selection to featured photos.
# @param user [String] Limit selection to given User's ID.
# @param query [String] Limit selection to given search query.
- # @param width [Integer] Width of customized version of the photo.
- # @param height [Integer] Height of the customized version of the photo.
# @param orientation [String] Filter by orientation of the photo. Valid values are landscape, portrait, and squarish.
# @return [Unsplash::Photo] An Unsplash Photo if count parameter is omitted
# @return [Array] An array of Unsplash Photos if the count parameter is specified. An array is returned even if count is 1
- def random(count: nil, categories: nil, collections: nil, featured: nil, user: nil, query: nil, width: nil, height: nil, orientation: nil)
+ def random(count: nil, collections: nil, featured: nil, user: nil, query: nil, orientation: nil)
params = {
- category: (categories && categories.join(",")),
collections: (collections && collections.join(",")),
featured: featured,
username: user,
query: query,
- w: width,
- h: height,
orientation: orientation
}.select { |k,v| v }
if count
params[:count] = count
photos = parse_list connection.get("/photos/random/", params).body
@@ -105,31 +91,9 @@
page: page,
per_page: per_page,
order_by: order_by
}
parse_list connection.get("/photos/", params).body
- end
-
- # Get a single page from the list of the curated photos (front-page’s photos).
- # @param page [Integer] Which page of search results to return.
- # @param per_page [Integer] The number of search results per page. (default: 10, maximum: 30)
- # @param order_by [String] How to sort the photos. (Valid values: latest, oldest, popular; default: latest)
- # @return [Array] A single page of +Unsplash::Photo+ search results.
- def curated(page = 1, per_page = 10, order_by = "latest")
- params = {
- page: page,
- per_page: per_page,
- order_by: order_by
- }
- parse_list connection.get("/photos/curated", params).body
- end
-
- # Upload a photo on behalf of the current user.
- # @param filepath [String] The local path of the image file to upload.
- # @return [Unsplash::Photo] The uploaded photo.
- # <b>DEPRECATED</b>
- def create(filepath)
- raise Unsplash::DeprecationError.new "API photo-upload endpoint has been deprecated and removed."
end
private
def parse_list(json)