about summary refs log tree commit diff
path: root/app/controllers/api/v1
diff options
context:
space:
mode:
authorRakib Hasan <rmhasan@gmail.com>2017-02-02 23:10:17 -0500
committerRakib Hasan <rmhasan@gmail.com>2017-02-19 08:28:33 +0000
commit6f9ecd899e9e7cb335940465c23dd53acc37269c (patch)
treed24913f5708b149797a4b94589c075635c9260ee /app/controllers/api/v1
parent6d2301988fdc0118c5583f48ba6da4a3b8247ba4 (diff)
revisted fix for #462
Moved validation to services/post_status_service.rb
Diffstat (limited to 'app/controllers/api/v1')
-rw-r--r--app/controllers/api/v1/media_controller.rb4
-rw-r--r--app/controllers/api/v1/statuses_controller.rb16
2 files changed, 10 insertions, 10 deletions
diff --git a/app/controllers/api/v1/media_controller.rb b/app/controllers/api/v1/media_controller.rb
index 582d04daf..f8139ade7 100644
--- a/app/controllers/api/v1/media_controller.rb
+++ b/app/controllers/api/v1/media_controller.rb
@@ -11,10 +11,6 @@ class Api::V1::MediaController < ApiController
 
   def create
     @media = MediaAttachment.create!(account: current_user.account, file: params[:file])
-    if @media.video? and params[:media_ids] != "List []"
-      @media.destroy
-      render json: {error: 'Cannot attach a video to a toot that already contains images'}, status: 422
-    end
   rescue Paperclip::Errors::NotIdentifiedByImageMagickError
     render json: { error: 'File type of uploaded media could not be verified' }, status: 422
   rescue Paperclip::Error
diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb
index 69cbdce5d..036383d1e 100644
--- a/app/controllers/api/v1/statuses_controller.rb
+++ b/app/controllers/api/v1/statuses_controller.rb
@@ -62,12 +62,16 @@ class Api::V1::StatusesController < ApiController
   end
 
   def create
-    @status = PostStatusService.new.call(current_user.account, params[:status], params[:in_reply_to_id].blank? ? nil : Status.find(params[:in_reply_to_id]), media_ids: params[:media_ids],
-                                                                                                                                                             sensitive: params[:sensitive],
-                                                                                                                                                             spoiler_text: params[:spoiler_text],
-                                                                                                                                                             visibility: params[:visibility],
-                                                                                                                                                             application: doorkeeper_token.application)
-
+    begin
+      @status = PostStatusService.new.call(current_user.account, params[:status], params[:in_reply_to_id].blank? ? nil : Status.find(params[:in_reply_to_id]), media_ids: params[:media_ids],
+                                                                                                                                                               sensitive: params[:sensitive],
+                                                                                                                                                               spoiler_text: params[:spoiler_text],
+                                                                                                                                                               visibility: params[:visibility],
+                                                                                                                                                               application: doorkeeper_token.application)
+    rescue Mastodon::NotPermitted => e
+       render json: {error: e.message}, status: 422
+       return
+    end
     render action: :show
   end