mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 15:53:41 +08:00
20 lines
613 B
Ruby
20 lines
613 B
Ruby
class UserFirst < ActiveRecord::Base
|
|
|
|
def self.types
|
|
@types ||= Enum.new(used_emoji: 1,
|
|
mentioned_user: 2 #unused now
|
|
)
|
|
end
|
|
|
|
def self.create_for(user_id, type, post_id=nil)
|
|
# the usual case will be that it is already in table, don't try to insert
|
|
return false if UserFirst.exists?(user_id: user_id, first_type: types[type])
|
|
|
|
create!(user_id: user_id, first_type: types[type], post_id: post_id)
|
|
true
|
|
rescue PG::UniqueViolation, ActiveRecord::RecordNotUnique
|
|
# Violating the index just means the user already did it
|
|
false
|
|
end
|
|
end
|