Post#approve!: move validation to post_approval.rb
This commit is contained in:
@@ -1,12 +1,24 @@
|
||||
class PostApproval < ActiveRecord::Base
|
||||
belongs_to :user
|
||||
belongs_to :post
|
||||
belongs_to :post, inverse_of: :approvals
|
||||
|
||||
validate :validate_approval
|
||||
|
||||
def self.prune!
|
||||
where("created_at < ?", 1.month.ago).delete_all
|
||||
end
|
||||
|
||||
def self.approved?(user_id, post_id)
|
||||
where(user_id: user_id, post_id: post_id).exists?
|
||||
def validate_approval
|
||||
if post.is_status_locked?
|
||||
errors.add(:post, "is locked and cannot be approved")
|
||||
end
|
||||
|
||||
if post.uploader == user
|
||||
errors.add(:base, "You cannot approve a post you uploaded")
|
||||
end
|
||||
|
||||
if post.approved_by?(user)
|
||||
errors.add(:base, "You have previously approved this post and cannot approve it again")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user