metamaps--metamaps/app/models/access_request.rb

39 lines
888 B
Ruby
Raw Permalink Normal View History

2016-12-13 03:28:10 +00:00
# frozen_string_literal: true
2017-11-06 16:15:18 +00:00
class AccessRequest < ApplicationRecord
belongs_to :user
belongs_to :map
2017-02-09 21:53:19 +00:00
has_one :user_map
2017-11-06 16:15:18 +00:00
2017-02-09 21:53:19 +00:00
after_create :after_created_async
def approve
self.approved = true
self.answered = true
2016-12-13 03:28:10 +00:00
save
2016-12-11 22:29:48 +00:00
Mailboxer::Notification.where(notified_object: self).find_each do |notification|
Mailboxer::Receipt.where(notification: notification).update_all(is_read: true)
end
2016-12-11 22:29:48 +00:00
2017-02-09 21:53:19 +00:00
UserMap.create(user: user, map: map, access_request: self)
end
def deny
self.approved = false
self.answered = true
2016-12-13 03:28:10 +00:00
save
2016-12-11 22:29:48 +00:00
Mailboxer::Notification.where(notified_object: self).find_each do |notification|
Mailboxer::Receipt.where(notification: notification).update_all(is_read: true)
end
end
2017-11-06 16:15:18 +00:00
2017-02-09 21:53:19 +00:00
protected
2017-11-06 16:15:18 +00:00
2017-02-09 21:53:19 +00:00
def after_created_async
NotificationService.access_request(self)
end
handle_asynchronously :after_created_async
end