corincerami / mars-photo-api

A Rails API for photo data from NASA's Mars Rovers
https://api.nasa.gov/#MarsPhotos
GNU General Public License v3.0
346 stars 46 forks source link

Implement photo size parameter #147

Open mtilda opened 3 years ago

mtilda commented 3 years ago

This pull request addresses multiple issues around the consistency and control of photo sizing (#117 and #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

Potential problems for users

Notes 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.