Class: OembedProviderEngine::OembedProviderController

Inherits:
ApplicationController show all
Defined in:
app/controllers/oembed_provider_engine/oembed_provider_controller.rb

Instance Method Summary collapse

Instance Method Details

#endpointObject

GET /oembed?url=… json by default GET /oembed.json?url=… GET /oembed.json?url=…&callback=myCallback GET /oembed.xml?url=…



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/controllers/oembed_provider_engine/oembed_provider_controller.rb', line 11

def endpoint
  # get object that we want an oembed_response from
  # based on url
  # and get its oembed_response
  media_item = ::OembedProviderEngine::OembedProvider.find_provided_from(params[:url])
  options = Hash.new
  max_dimensions = [:maxwidth, :maxheight]
  unless media_item.class::OembedResponse.providable_oembed_type == :link
    max_dimensions.each { |dimension| options[dimension] = params[dimension] if params[dimension].present? }
  end

  @oembed_response = media_item.oembed_response(options)

  # to_xml and to_json overidden in oembed_providable module
  # to be properly formatted
  # TODO: handle unauthorized case
  respond_to do |format|
    if @oembed_response
      format.html { render_json @oembed_response.to_json } # return json for default
      format.json { render_json @oembed_response.to_json }
      format.xml  { render :xml => @oembed_response }
    else
      format.all { render_404 }
    end
  end
end