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