2016-04-06 20:19:46 +02:00
|
|
|
class HatRequest < ActiveRecord::Base
|
|
|
|
belongs_to :user
|
|
|
|
|
|
|
|
validates :user, :presence => true
|
|
|
|
validates :hat, :presence => true
|
|
|
|
validates :link, :presence => true
|
|
|
|
validates :comment, :presence => true
|
|
|
|
|
|
|
|
attr_accessor :rejection_comment
|
|
|
|
|
|
|
|
def approve_by_user!(user)
|
|
|
|
self.transaction do
|
|
|
|
h = Hat.new
|
|
|
|
h.user_id = self.user_id
|
|
|
|
h.granted_by_user_id = user.id
|
|
|
|
h.hat = self.hat
|
|
|
|
h.link = self.link
|
|
|
|
h.save!
|
|
|
|
|
|
|
|
m = Message.new
|
|
|
|
m.author_user_id = user.id
|
|
|
|
m.recipient_user_id = self.user_id
|
2018-10-20 13:28:32 +02:00
|
|
|
m.subject = I18n.t 'models.hat.grantsubject', :hat => "#{self.hat}"
|
2018-10-20 13:31:54 +02:00
|
|
|
m.body = I18n.t 'models.hat.grantbody'
|
2016-04-06 20:19:46 +02:00
|
|
|
m.save!
|
|
|
|
|
|
|
|
self.destroy
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def reject_by_user_for_reason!(user, reason)
|
|
|
|
self.transaction do
|
|
|
|
m = Message.new
|
|
|
|
m.author_user_id = user.id
|
|
|
|
m.recipient_user_id = self.user_id
|
2018-10-20 13:28:32 +02:00
|
|
|
m.subject = I18n.t 'models.hat.rejectsubject', :hat => "#{self.hat}"
|
2016-04-06 20:19:46 +02:00
|
|
|
m.body = reason
|
|
|
|
m.save!
|
|
|
|
|
|
|
|
self.destroy
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|