This repository has been archived by the owner on Dec 12, 2018. It is now read-only.
/
facebook_controller.rb
58 lines (51 loc) · 1.63 KB
/
facebook_controller.rb
1
2
3
4
5
6
7
8
9
10
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
class FacebookShareWidget::FacebookController < FacebookShareWidget::ApplicationController
include FacebookShareWidget::FacebookHelper
def index
end
def employers
begin
@employers = my_employers
if @employers.empty?
render :no_employers
end
rescue Exception => ex
render json: { message: "You are probably not logged in" }, status: :not_found
end
end
def change_employer
begin
@employers = friends_employers
if @employers.empty?
render :no_friends_employers
end
rescue Exception => ex
render json: { message: "You are probably not logged in" }, status: :not_found
end
end
def friends
begin
render json: facebook_friends_for_link(params[:link], params[:compId] ? params[:compId].to_i : nil), status: :ok
rescue Exception => ex
log_exception_and_render_as_json(ex)
end
end
def share
begin
if params[:post_id]
me = facebook_me.fetch
share = FacebookShareWidget::Share.new(user_facebook_id: me.identifier, friend_facebook_id: params[:facebook_id], url: params[:link], message: message_for(params[:post_id]))
share.save!
end
render layout: false
rescue Exception => ex
log_exception_and_render_as_json(ex)
end
end
private
def log_exception_and_render_as_json(ex)
Rails.logger.warn ex.message
Rails.logger.warn ex.backtrace.join("\n")
ExceptionNotifier::Notifier.background_exception_notification(ex) if defined? ExceptionNotifier
render json: { message: "You've exceeded your daily facebook share limit." }, status: :internal_server_error
end
end