Repository URL to install this package:
|
Version:
0.9.20 ▾
|
# frozen_string_literal: true
module ActionSprout::Facebook
module Services
class GetPageData
PAGE_FIELDS = 'name,category,description,about,fan_count,picture.type(square){url}'
method_object :facebook_page_id, :api
def call
check_args
page
end
private
def check_args
raise ArgumentError.new('"facebook_page_id" must be present') unless facebook_page_id.present?
raise ArgumentError.new('"api" must be present') unless api.present?
end
def page
page_data.except("id", "picture").merge({
"facebook_page_id" => page_data["id"],
"picture_url" => picture_url,
})
end
def picture_url
page_data.dig('picture', 'data', 'url')
end
def page_data
@_page_data ||= Page.new(facebook_page_id, api: api, fields: PAGE_FIELDS).data
end
end
end
end