app/controllers/concerns/adminpanel/facebook_actions.rb in adminpanel-2.1.0 vs app/controllers/concerns/adminpanel/facebook_actions.rb in adminpanel-2.1.1
- old
+ new
@@ -1,12 +1,11 @@
module Adminpanel
module FacebookActions
extend ActiveSupport::Concern
- include ActionView::Helpers::TextHelper
included do
- before_filter :set_auths_count, only:[:index, :show, :destroy]
+ before_filter :set_auths_count
end
def fb_choose_page
access_token = Koala::Facebook::OAuth.new(
Adminpanel.fb_app_id,
@@ -15,40 +14,32 @@
controller: params[:controller],
action: :fb_choose_page,
id: resource,
host: request.host
})
- ).get_access_token(params[:code]) if params[:code]
+ ).get_access_token(params[:code])
user = Koala::Facebook::API.new(access_token)
@pages = user.get_connections('me', 'accounts')
user_object = user.get_object('me')
@name = user_object['name']
- user_hash = { 'name' => @name, 'access_token' => access_token }
- @pages << user_hash # to permit post on own profile
+ @pages << { 'name' => @name, 'access_token' => access_token } # to permit posts on own wall
render 'shared/fb_choose_page'
end
def fb_save_token
- page_selected = Koala::Facebook::API.new(params[@model.name.demodulize.downcase][:fb_page_access_key])
- @auths = Auth.where(key: 'facebook', name: page_selected.get_object('me')['name'])
- if @auths.count == 0
- Auth.create(
- key: 'facebook',
- name: page_selected.get_object('me')['name'],
- value: params[@model.name.demodulize.downcase][:fb_page_access_key]
- )
- else
- @auths.first.update_attribute(:value, params[@mode.name.demodulize.downcase][:fb_page_access_key])
- end
- flash[:success] = I18n.t('fb.saved-token')
+ page_selected = Koala::Facebook::API.new(
+ params[model_name][:fb_page_access_key]
+ )
+ update_facebook_auth(page_selected.get_object('me')['name'])
+ flash[:success] = I18n.t('fb.saved_token')
redirect_to resource
end
def fb_publish
page_graph = Koala::Facebook::API.new(Auth.find_by_key('facebook').value)
page_graph.put_wall_post(
- strip_tags(params[@model.name.demodulize.downcase][:fb_message]),
+ params[model_name][:fb_message],
{
link: resource.fb_link,
name: resource.name
}
)
@@ -57,8 +48,25 @@
end
private
def set_auths_count
@fb_auths_count = Auth.where(key: 'facebook').count
+ end
+
+ def update_facebook_auth(account_selected_name)
+ auths = Auth.where(key: 'facebook', name: account_selected_name)
+ if auths.count == 0
+ Auth.create(
+ key: 'facebook',
+ name: account_selected_name,
+ value: params[model_name][:fb_page_access_key]
+ )
+ else
+ auths.first.update_attribute(:value, params[model_name][:fb_page_access_key])
+ end
+ end
+
+ def model_name
+ @model.name.demodulize.downcase # ex: posts
end
end
end