diff --git a/.rubocop.yml b/.rubocop.yml index e525bb5d6..f26396137 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -45,4 +45,4 @@ Metrics/LineLength: # Offense count: 8 Metrics/PerceivedComplexity: - Max: 12 \ No newline at end of file + Max: 11 \ No newline at end of file diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index 2e2f44689..da3ebd659 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -47,11 +47,7 @@ class PhotosController < ApplicationController # POST /photos # POST /photos.json def create - @photo = Photo.find_by_flickr_photo_id(params[:photo][:flickr_photo_id]) || - Photo.new(photo_params) - @photo.owner_id = current_member.id - @photo.set_flickr_metadata - + @photo = find_or_create_from_flickr_photo params[:photo][:flickr_photo_id] collection = case params[:type] when 'garden' @@ -129,4 +125,12 @@ class PhotosController < ApplicationController params.require(:photo).permit(:flickr_photo_id, :owner_id, :title, :license_name, :license_url, :thumbnail_url, :fullsize_url, :link_url) end + + def find_or_create_from_flickr_photo(flickr_photo_id) + photo = Photo.find_by(flickr_photo_id: flickr_photo_id) + photo = Photo.new(photo_params) unless photo + photo.owner_id = current_member.id + photo.set_flickr_metadata + photo + end end