about summary refs log tree commit diff
path: root/app/controllers/api/v1/statuses_controller.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-04-25 15:04:49 +0200
committerGitHub <noreply@github.com>2017-04-25 15:04:49 +0200
commit8b5179d006a07cf759e751e9d883bfe472cee868 (patch)
treee3ea9299e7a99c55b62b4ebcac1749304f6f54c0 /app/controllers/api/v1/statuses_controller.rb
parent3ea5b948a4cee9ea5a1e229f567974c323947ef5 (diff)
Fix #2402 - Add Idempotency-Key header to PostStatusService that prevents (#2419)
duplicates. Web UI regenerates UUID for that header every time the compose
form is changed or successfully submitted

Also, fix Farsi i18n overwriting the English one
Diffstat (limited to 'app/controllers/api/v1/statuses_controller.rb')
-rw-r--r--app/controllers/api/v1/statuses_controller.rb15
1 files changed, 10 insertions, 5 deletions
diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb
index 5a2e18cc0..77bdaa494 100644
--- a/app/controllers/api/v1/statuses_controller.rb
+++ b/app/controllers/api/v1/statuses_controller.rb
@@ -57,11 +57,16 @@ class Api::V1::StatusesController < ApiController
   end
 
   def create
-    @status = PostStatusService.new.call(current_user.account, status_params[:status], status_params[:in_reply_to_id].blank? ? nil : Status.find(status_params[:in_reply_to_id]), media_ids: status_params[:media_ids],
-                                                                                                                                                                                  sensitive: status_params[:sensitive],
-                                                                                                                                                                                  spoiler_text: status_params[:spoiler_text],
-                                                                                                                                                                                  visibility: status_params[:visibility],
-                                                                                                                                                                                  application: doorkeeper_token.application)
+    @status = PostStatusService.new.call(current_user.account,
+                                         status_params[:status],
+                                         status_params[:in_reply_to_id].blank? ? nil : Status.find(status_params[:in_reply_to_id]),
+                                         media_ids: status_params[:media_ids],
+                                         sensitive: status_params[:sensitive],
+                                         spoiler_text: status_params[:spoiler_text],
+                                         visibility: status_params[:visibility],
+                                         application: doorkeeper_token.application,
+                                         idempotency: request.headers['Idempotency-Key'])
+
     render :show
   end