discourse/app/models/user_first.rb
2016-04-06 13:18:11 +10:00

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