about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-10-06 14:39:34 +0200
committerEugen Rochko <eugen@zeonfederated.com>2016-10-06 14:40:15 +0200
commit2f5b205916c3204e6e4908e371b29718b7e9e730 (patch)
treee8252c6fb3194ceb243e9b314fb6fc6e093bb4a0
parentcdad5d322d0efb81af6efb2afe1393b9d7a47033 (diff)
Catch Paperclip errors on /api/v1/media, return early from update profile service if XML given is nil
-rw-r--r--app/controllers/api/v1/media_controller.rb4
-rw-r--r--app/services/update_remote_profile_service.rb2
2 files changed, 6 insertions, 0 deletions
diff --git a/app/controllers/api/v1/media_controller.rb b/app/controllers/api/v1/media_controller.rb
index 4896534ad..7efe38bd8 100644
--- a/app/controllers/api/v1/media_controller.rb
+++ b/app/controllers/api/v1/media_controller.rb
@@ -4,5 +4,9 @@ class Api::V1::MediaController < ApiController
 
   def create
     @media = MediaAttachment.create!(account: current_user.account, file: params[:file])
+  rescue Paperclip::Errors::NotIdentifiedByImageMagickError
+    render json: { error: 'File type of uploaded media could not be verified' }, status: 422
+  rescue Paperclip::Error
+    render json: { error: 'Error processing thumbnail for uploaded media' }, status: 500
   end
 end
diff --git a/app/services/update_remote_profile_service.rb b/app/services/update_remote_profile_service.rb
index 5f1d3caeb..595fa4244 100644
--- a/app/services/update_remote_profile_service.rb
+++ b/app/services/update_remote_profile_service.rb
@@ -1,5 +1,7 @@
 class UpdateRemoteProfileService < BaseService
   def call(author_xml, account)
+    return if author_xml.nil?
+
     if author_xml.at_xpath('./poco:displayName').nil?
       account.display_name = account.username
     else