mirror of
https://github.com/discourse/discourse.git
synced 2024-11-24 04:31:56 +08:00
18 lines
553 B
Ruby
18 lines
553 B
Ruby
class UserFirst < ActiveRecord::Base
|
|
|
|
def self.types
|
|
@types ||= Enum.new(used_emoji: 1, mentioned_user: 2)
|
|
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
|