class PowerBiEmbedded::EmbedToken

Public Class Methods

new(access_token: nil, group_id: nil, resource: nil, resource_id: nil, tile_id: nil, dataset_id: nil, access_level: nil, identities: nil, allow_save_as: false) click to toggle source
# File lib/power_bi_embedded/embed_token.rb, line 4
def initialize(access_token: nil, group_id: nil, resource: nil, resource_id: nil,
               tile_id: nil, dataset_id: nil, access_level: nil, identities: nil, allow_save_as: false)
  @access_token  = access_token
  @group_id      = group_id
  @resource      = resource
  @resource_id   = resource_id
  @dataset_id    = dataset_id
  @access_level  = access_level
  @identities    = identities
  @allow_save_as = allow_save_as
end

Public Instance Methods

call() click to toggle source
# File lib/power_bi_embedded/embed_token.rb, line 16
def call
  url = send(@resource) if @resource.present?

  PowerBiEmbedded::Base.post(url, build_body, build_headers)
end

Private Instance Methods

build_base_url() click to toggle source
# File lib/power_bi_embedded/embed_token.rb, line 49
def build_base_url
  "https://api.powerbi.com/v1.0/myorg/groups/#{@group_id}"
end
build_body() click to toggle source
# File lib/power_bi_embedded/embed_token.rb, line 36
def build_body
  {
    accessLevel: @access_level,
    allowSaveAs: @allow_save_as,
    datasetId: @dataset_id,
    identities: @identities
  }.compact
end
build_headers() click to toggle source
# File lib/power_bi_embedded/embed_token.rb, line 45
def build_headers
  { 'Authorization': "Bearer #{@access_token}" }
end
dashboard() click to toggle source
# File lib/power_bi_embedded/embed_token.rb, line 28
def dashboard
  build_base_url + "/dashboards/#{@resource_id}/GenerateToken"
end
report() click to toggle source
# File lib/power_bi_embedded/embed_token.rb, line 24
def report
  build_base_url + "/reports/#{@resource_id}/GenerateToken"
end
tile() click to toggle source
# File lib/power_bi_embedded/embed_token.rb, line 32
def tile
  build_base_url + "/dashboards/#{@resource_id}/tiles/#{@tile_id}/GenerateToken"
end