mirror of
https://github.com/codeninjasllc/discourse.git
synced 2025-02-25 07:54:11 -05:00
FIX: a User is *not* a Topic
This commit is contained in:
parent
ece8083ab1
commit
6137bb46d3
3 changed files with 7 additions and 11 deletions
|
@ -576,9 +576,7 @@ class TopicsController < ApplicationController
|
||||||
|
|
||||||
Scheduler::Defer.later "Track Visit" do
|
Scheduler::Defer.later "Track Visit" do
|
||||||
TopicViewItem.add(topic_id, ip, user_id)
|
TopicViewItem.add(topic_id, ip, user_id)
|
||||||
if track_visit
|
TopicUser.track_visit!(topic_id, user_id) if track_visit
|
||||||
TopicUser.track_visit! topic_id, user_id
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -125,16 +125,14 @@ class TopicUser < ActiveRecord::Base
|
||||||
# In case of a race condition to insert, do nothing
|
# In case of a race condition to insert, do nothing
|
||||||
end
|
end
|
||||||
|
|
||||||
def track_visit!(topic,user)
|
def track_visit!(topic_id, user_id)
|
||||||
topic_id = topic.is_a?(Topic) ? topic.id : topic
|
|
||||||
user_id = user.is_a?(User) ? user.id : topic
|
|
||||||
|
|
||||||
now = DateTime.now
|
now = DateTime.now
|
||||||
rows = TopicUser.where(topic_id: topic_id, user_id: user_id).update_all(last_visited_at: now)
|
rows = TopicUser.where(topic_id: topic_id, user_id: user_id).update_all(last_visited_at: now)
|
||||||
|
|
||||||
if rows == 0
|
if rows == 0
|
||||||
TopicUser.create(topic_id: topic_id, user_id: user_id, last_visited_at: now, first_visited_at: now)
|
TopicUser.create(topic_id: topic_id, user_id: user_id, last_visited_at: now, first_visited_at: now)
|
||||||
else
|
else
|
||||||
observe_after_save_callbacks_for topic_id, user_id
|
observe_after_save_callbacks_for(topic_id, user_id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ describe TopicUser do
|
||||||
describe 'visited at' do
|
describe 'visited at' do
|
||||||
|
|
||||||
before do
|
before do
|
||||||
TopicUser.track_visit!(topic, user)
|
TopicUser.track_visit!(topic.id, user.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'set upon initial visit' do
|
it 'set upon initial visit' do
|
||||||
|
@ -139,7 +139,7 @@ describe TopicUser do
|
||||||
today = yesterday.tomorrow
|
today = yesterday.tomorrow
|
||||||
|
|
||||||
freeze_time today do
|
freeze_time today do
|
||||||
TopicUser.track_visit!(topic,user)
|
TopicUser.track_visit!(topic.id, user.id)
|
||||||
# reload is a no go
|
# reload is a no go
|
||||||
topic_user = TopicUser.get(topic,user)
|
topic_user = TopicUser.get(topic,user)
|
||||||
expect(topic_user.first_visited_at.to_i).to eq(yesterday.to_i)
|
expect(topic_user.first_visited_at.to_i).to eq(yesterday.to_i)
|
||||||
|
@ -149,7 +149,7 @@ describe TopicUser do
|
||||||
|
|
||||||
it 'triggers the observer callbacks when updating' do
|
it 'triggers the observer callbacks when updating' do
|
||||||
UserActionObserver.instance.expects(:after_save).twice
|
UserActionObserver.instance.expects(:after_save).twice
|
||||||
2.times { TopicUser.track_visit!(topic, user) }
|
2.times { TopicUser.track_visit!(topic.id, user.id) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue