45 lines
1003 B
Ruby
45 lines
1003 B
Ruby
# typed: false
|
|
|
|
class HatRequest < ApplicationRecord
|
|
belongs_to :user
|
|
|
|
validates :hat, presence: true, length: {maximum: 255}
|
|
validates :link, presence: true, length: {maximum: 255}
|
|
validates :comment, presence: true, length: {maximum: 65_535}
|
|
|
|
attr_accessor :rejection_comment
|
|
|
|
def approve_by_user_for_reason!(user, reason)
|
|
transaction do
|
|
h = Hat.new
|
|
h.user_id = user_id
|
|
h.granted_by_user_id = user.id
|
|
h.hat = hat
|
|
h.link = link
|
|
h.save!
|
|
|
|
m = Message.new
|
|
m.author_user_id = user.id
|
|
m.recipient_user_id = user_id
|
|
m.subject = "Your hat \"#{hat}\" has been approved"
|
|
m.body = reason
|
|
m.save!
|
|
|
|
destroy!
|
|
end
|
|
end
|
|
|
|
def reject_by_user_for_reason!(user, reason)
|
|
transaction do
|
|
m = Message.new
|
|
m.author_user_id = user.id
|
|
m.recipient_user_id = user_id
|
|
m.subject = "Your request for hat \"#{hat}\" has been rejected"
|
|
m.body = reason
|
|
m.save!
|
|
|
|
destroy!
|
|
end
|
|
end
|
|
end
|