Added validations for uploaded screenshots.
Checks if Paperclip complained about an invalid file (e.g. no PNG) Checks if the upload is a duplicate.
This commit is contained in:
parent
96fcb9c940
commit
e8c4694ef0
1 changed files with 17 additions and 1 deletions
|
|
@ -27,7 +27,23 @@ class PackagesController < ApplicationController
|
||||||
def upload_image
|
def upload_image
|
||||||
@package = Package.find_by(name: params[:name])
|
@package = Package.find_by(name: params[:name])
|
||||||
params[:screenshot][:image].each do |img|
|
params[:screenshot][:image].each do |img|
|
||||||
@package.screenshots.create(image: img)
|
new_screenshot = @package.screenshots.new(image: img)
|
||||||
|
|
||||||
|
# Check if the image is already present by checking its checksum.
|
||||||
|
if @package.screenshots.find_by(image_fingerprint: new_screenshot.image_fingerprint)
|
||||||
|
# logger.error "Uploaded image exists already for package #{@package.name}. Rejecting."
|
||||||
|
flash['alert'] = "Sorry - you uploaded a duplicate screenshot. I am ignoring it."
|
||||||
|
else
|
||||||
|
new_screenshot.save
|
||||||
|
end
|
||||||
|
|
||||||
|
# Check if the image was valid
|
||||||
|
unless new_screenshot.valid?
|
||||||
|
flash['alert'] = "Sorry - you uploaded an invalid file. Was it really a PNG?"
|
||||||
|
else
|
||||||
|
new_screenshot.save
|
||||||
|
end
|
||||||
|
|
||||||
# TODO: add logging
|
# TODO: add logging
|
||||||
# TODO: what do we do if the user uploads an invalid image? tell them?
|
# TODO: what do we do if the user uploads an invalid image? tell them?
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue