Skip to content

Commit 6982d33

Browse files
committed
simplify
1 parent ac4895f commit 6982d33

File tree

3 files changed

+16
-28
lines changed

3 files changed

+16
-28
lines changed

app/controllers/application_controller.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,18 @@ def user_not_authorized
9191
flash[:alert] = 'You are not authorized to perform this action.'
9292
redirect_back(fallback_location: root_path)
9393
end
94+
95+
# Tracks a view for any viewable object (Document, Library, etc.)
96+
# Updates the timestamp if the user has already viewed this item
97+
# @param viewable [ActiveRecord::Base] the object being viewed (must have viewed_items association)
98+
def track_view(viewable)
99+
return unless current_user
100+
101+
viewed_item = ViewedItem.find_or_initialize_by(
102+
user: current_user,
103+
viewable: viewable
104+
)
105+
viewed_item.viewed_at = Time.current
106+
viewed_item.save
107+
end
94108
end

app/controllers/documents_controller.rb

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def edit
1616
# GET /documents/1 or /documents/1.json
1717
def show
1818
# Track view for authenticated users
19-
track_document_view if current_user
19+
track_view(@document)
2020

2121
# Handle flagging functionality (requires user to be logged in)
2222
if params[:flag] && current_user
@@ -42,17 +42,4 @@ def show
4242
@related_docs = related_documents(@document).first(5)
4343
@comments = @document.comments.includes(:user).ordered
4444
end
45-
46-
private
47-
48-
# Tracks a document view for the current user
49-
# Updates the timestamp if the user has already viewed this document
50-
def track_document_view
51-
viewed_item = ViewedItem.find_or_initialize_by(
52-
user: current_user,
53-
viewable: @document
54-
)
55-
viewed_item.viewed_at = Time.current
56-
viewed_item.save
57-
end
5845
end

app/controllers/libraries_controller.rb

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def edit
1414
# GET /libraries/1 or /libraries/1.json
1515
def show
1616
# Track view for authenticated users
17-
track_library_view if current_user
17+
track_view(@library)
1818
end
1919

2020
def users
@@ -46,17 +46,4 @@ def download
4646

4747
send_data final_contents, filename: "#{@library.name.parameterize}-documents.xml", type: 'application/xml' # Change filename and type
4848
end
49-
50-
private
51-
52-
# Tracks a library view for the current user
53-
# Updates the timestamp if the user has already viewed this library
54-
def track_library_view
55-
viewed_item = ViewedItem.find_or_initialize_by(
56-
user: current_user,
57-
viewable: @library
58-
)
59-
viewed_item.viewed_at = Time.current
60-
viewed_item.save
61-
end
6249
end

0 commit comments

Comments
 (0)