Method: Thredded::UserPrivateTopicReadState.touch!

Defined in:
app/models/thredded/user_private_topic_read_state.rb

.touch!(user_id, post, overwrite_newer: false) ⇒ Object

Parameters:



25
26
27
28
29
30
31
32
33
# File 'app/models/thredded/user_private_topic_read_state.rb', line 25

def touch!(user_id, post, overwrite_newer: false)
  state = find_or_initialize_by(user_id: user_id, postable_id: post.postable_id)
  return if !overwrite_newer && state.read_at? && state.read_at >= post.created_at
  state.read_at = post.created_at
  state.update!(state.calculate_post_counts)
rescue ActiveRecord::RecordNotUnique
  # The record has been created from another connection, retry to find it.
  retry
end