about summary refs log tree commit diff
path: root/app/controllers/api
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-04-27 14:42:22 +0200
committerGitHub <noreply@github.com>2017-04-27 14:42:22 +0200
commit88725d6ce85115ea3b0652007db5d40a1c069be3 (patch)
tree7a8965abda1cfc3b6c319ea19ee216755ac2f2df /app/controllers/api
parentbe0a01145b5f303c5c506858146ccf6c6d5cee72 (diff)
OEmbed support for PreviewCard (#2337)
* OEmbed support for PreviewCard

* Improve ProviderDiscovery code failure treatment

* Do not crawl links if there is a content warning, since those
don't display a link card anyway

* Reset db schema

* Fresh migrate

* Fix rubocop style issues
Fix #1681 - return existing access token when applicable instead of creating new

* Fix test

* Extract http client to helper

* Improve oembed controller
Diffstat (limited to 'app/controllers/api')
-rw-r--r--app/controllers/api/oembed_controller.rb16
1 files changed, 14 insertions, 2 deletions
diff --git a/app/controllers/api/oembed_controller.rb b/app/controllers/api/oembed_controller.rb
index 2ea482296..58d8207f6 100644
--- a/app/controllers/api/oembed_controller.rb
+++ b/app/controllers/api/oembed_controller.rb
@@ -14,8 +14,20 @@ class Api::OEmbedController < ApiController
   def stream_entry_from_url(url)
     params = Rails.application.routes.recognize_path(url)
 
-    raise ActiveRecord::RecordNotFound unless params[:controller] == 'stream_entries' && params[:action] == 'show'
+    raise ActiveRecord::RecordNotFound unless recognized_stream_entry_url?(params)
 
-    StreamEntry.find(params[:id])
+    stream_entry(params)
+  end
+
+  def recognized_stream_entry_url?(params)
+    %w(stream_entries statuses).include?(params[:controller]) && params[:action] == 'show'
+  end
+
+  def stream_entry(params)
+    if params[:controller] == 'stream_entries'
+      StreamEntry.find(params[:id])
+    else
+      Status.find(params[:id]).stream_entry
+    end
   end
 end