Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement photo size parameter #1

Merged
merged 49 commits into from
Apr 10, 2021
Merged

Implement photo size parameter #1

merged 49 commits into from
Apr 10, 2021

Conversation

mtilda
Copy link
Owner

@mtilda mtilda commented Apr 10, 2021

This pull request addresses multiple issues around the consistency and control of photo sizing (corincerami#117 and corincerami#130).

Going forward, users may pass a size parameter that will specify the size of the returned photos. This is achieved by altering the suffix of each img_src in the photos_controller.rb and latest_photos_controller.rb to correspond with the requested size and rover_id. I stored the logic for resizing in photo_helper.rb so it can be shared between both controllers.

Original suffixes (what is stored in the database)

Curiosity Opportunity Spirit Perseverance
.jpg or .JPG -BR.JPG -BR.JPG _1200.jpg

New suffix outputs

Size Parameter Value Curiosity Opportunity Spirit Perseverance
small -thm.jpg -THM.JPG -THM.JPG _320.jpg
medium -br.jpg -BR.JPG -BR.JPG _800.jpg
large or nil .JPG .JPG .JPG _1200.jpg
full N/A N/A N/A .png

Note: Some of these suffixes are case sensitive

Other changes

  • Move logic for searching photos by params and rover from photos_controller.rb and latest_photos_controller.rb to Photo.search method in models/photo.rb
  • Fix non-breaking syntax error in latest_photos_controller.rb (Non-breaking syntax error in latest_photos_controller.rb corincerami/mars-photo-api#145)
  • Add RSpec test file for latest_photos_controller.rb
  • Add RSpec tests for photos_controller.rb and latest_photos_controller.rb with size parameter
  • Change how img_src is sequenced in spec/factories.rb, so it does not conflict with tests involving size parameter

Potentially problems for users

  • When not given a size parameter, photos from Opportunity and Spirit rovers will now be served in their large format; whereas they used to be served as medium.

Note to devs before merge

I have not tested these changes extensively with Opportunity and Spirit photos, because their scrapers are deprecated. Please test on a full development version of the API with Opportunity and Spirit photos before merging.

tproffen and others added 30 commits March 3, 2021 09:45
feat: add perseverance rover image
Add new cameras to seeds and upgrade Rails
@mtilda mtilda merged commit cc1a228 into master Apr 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants