# frozen_string_literal: true class AccessRequest < ApplicationRecord belongs_to :user belongs_to :map has_one :user_map after_create :after_created_async def approve self.approved = true self.answered = true save Mailboxer::Notification.where(notified_object: self).find_each do |notification| Mailboxer::Receipt.where(notification: notification).update_all(is_read: true) end UserMap.create(user: user, map: map, access_request: self) end def deny self.approved = false self.answered = true save Mailboxer::Notification.where(notified_object: self).find_each do |notification| Mailboxer::Receipt.where(notification: notification).update_all(is_read: true) end end protected def after_created_async NotificationService.access_request(self) end handle_asynchronously :after_created_async end