Class: ActivityNotification::ORM::Mongoid::Notification
- Inherits:
-
Object
- Object
- ActivityNotification::ORM::Mongoid::Notification
- Includes:
- Association, Common, NotificationApi, Renderable, GlobalID::Identification, Mongoid::Attributes::Dynamic, Mongoid::Document, Mongoid::Timestamps
- Defined in:
- lib/activity_notification/orm/mongoid/notification.rb
Overview
Notification model implementation generated by ActivityNotification.
Class Method Summary collapse
-
.earlier_than ⇒ ActiveRecord_AssociationRelation<Notificaion>, Mongoid::Criteria<Notificaion>
Selects filtered notifications earlier than specified time.
-
.filtered_by_group ⇒ Mongoid::Criteria<Notificaion>
Selects filtered notifications by group instance.
-
.filtered_by_instance ⇒ Mongoid::Criteria<Notificaion>
Selects filtered notifications by notifiable instance.
-
.filtered_by_target ⇒ Mongoid::Criteria<Notificaion>
Selects filtered notifications by target instance.
-
.group_members_of_owner_ids_only ⇒ Mongoid::Criteria<Notificaion>
Selects group member notifications with specified group owner ids.
-
.group_members_only ⇒ Mongoid::Criteria<Notificaion>
Selects group member notifications only.
-
.group_owners_only ⇒ Mongoid::Criteria<Notificaion>
Selects group owner notifications only.
-
.later_than ⇒ ActiveRecord_AssociationRelation<Notificaion>, Mongoid::Criteria<Notificaion>
Selects filtered notifications later than specified time.
-
.opened_index_group_members_only ⇒ Mongoid::Criteria<Notificaion>
Selects group member notifications in opened_index.
-
.opened_only ⇒ Mongoid::Criteria<Notificaion>
Selects opened notifications only with limit.
-
.opened_only! ⇒ Mongoid::Criteria<Notificaion>
Selects opened notifications only without limit.
-
.raise_delete_restriction_error(error_text) ⇒ void
Raise ActivityNotification::DeleteRestrictionError for notifications.
-
.unopened_index_group_members_only ⇒ Mongoid::Criteria<Notificaion>
Selects group member notifications in unopened_index.
-
.unopened_only ⇒ Mongoid::Criteria<Notificaion>
Selects unopened notifications only.
-
.within_expiration_only ⇒ Mongoid::Criteria<Notificaion>
Selects notifications within expiration.
Instance Method Summary collapse
-
#group ⇒ Object
Belongs to group instance of this notification as polymorphic association.
-
#group_members ⇒ Mongoid::Criteria<Notificaion>
Has many group member notification instances of this notification.
-
#group_owner ⇒ Notification
Belongs to group owner notification instance of this notification.
-
#group_owner? ⇒ Boolean
Returns if the notification is group owner.
-
#notifiable ⇒ Object
Belongs to notifiable instance of this notification as polymorphic association.
-
#notifier ⇒ Object
Belongs to :otifier instance of this notification.
-
#target ⇒ Object
Belongs to target instance of this notification as polymorphic association.
-
#where ⇒ Mongoid::Criteria<Notification>
Selects filtered notifications by type of the object.
-
#with_group ⇒ Mongoid::Criteria<Notificaion>
Includes group instance with query for notifications.
-
#with_group_members ⇒ Mongoid::Criteria<Notificaion>
Includes group member instances with query for notifications.
-
#with_group_owner ⇒ Mongoid::Criteria<Notificaion>
Includes group owner instances with query for notifications.
-
#with_notifiable ⇒ Mongoid::Criteria<Notificaion>
Includes notifiable instance with query for notifications.
-
#with_notifier ⇒ Mongoid::Criteria<Notificaion>
Includes notifier instance with query for notifications.
-
#with_target ⇒ Mongoid::Criteria<Notificaion>
Includes target instance with query for notifications.
Methods included from NotificationApi
#after_store, #email_subscribed?, #group_member?, #group_member_count, #group_member_exists?, #group_member_notifier_count, #group_member_notifier_exists?, #group_notification_count, #group_notifier_count, #latest_group_member, #notifiable_path, #open!, #opened?, #optional_target_names, #optional_target_subscribed?, #optional_targets, #prepare_to_store, #printable_notifiable_name, #publish_to_optional_targets, #remove_from_group, #send_notification_email, #subscribed?, #unopened?
Methods included from Association
Methods included from Renderable
#layout_path, #partial_path, #prepare_assigns, #prepare_locals, #prepare_parameters, #render, #text
Methods included from Common
#printable_name, #printable_type, #resolve_value, #to_class_name, #to_resource_name, #to_resources_name
Methods included from Mongoid::Document
Class Method Details
.earlier_than ⇒ ActiveRecord_AssociationRelation<Notificaion>, Mongoid::Criteria<Notificaion>
Selects filtered notifications earlier than specified time.
162 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 162 scope :earlier_than, ->(created_time) { where(:created_at.lt => created_time) } |
.filtered_by_group ⇒ Mongoid::Criteria<Notificaion>
Selects filtered notifications by group instance.
140 141 142 143 144 145 146 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 140 scope :filtered_by_group, ->(group) { group.present? ? where(group_id: group.id, group_type: group.class.name) : Gem::Version.new(::Mongoid::VERSION) >= Gem::Version.new('7.1.0') ? where(:group_id.exists => false, :group_type.exists => false).or(group_id: nil, group_type: nil) : any_of({ :group_id.exists => false, :group_type.exists => false }, { group_id: nil, group_type: nil }) } |
.filtered_by_instance ⇒ Mongoid::Criteria<Notificaion>
Selects filtered notifications by notifiable instance.
132 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 132 scope :filtered_by_instance, ->(notifiable) { filtered_by_association("notifiable", notifiable) } |
.filtered_by_target ⇒ Mongoid::Criteria<Notificaion>
Selects filtered notifications by target instance.
ActivityNotification::Notification.filtered_by_target(@user)
is the same as
@user.notifications
124 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 124 scope :filtered_by_target, ->(target) { filtered_by_association("target", target) } |
.group_members_of_owner_ids_only ⇒ Mongoid::Criteria<Notificaion>
Selects group member notifications with specified group owner ids.
115 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 115 scope :group_members_of_owner_ids_only, ->(owner_ids) { where(:group_owner_id.in => owner_ids) } |
.group_members_only ⇒ Mongoid::Criteria<Notificaion>
Selects group member notifications only.
75 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 75 scope :group_members_only, -> { where(:group_owner_id.exists => true) } |
.group_owners_only ⇒ Mongoid::Criteria<Notificaion>
Selects group owner notifications only.
70 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 70 scope :group_owners_only, -> { where(:group_owner_id.exists => false) } |
.later_than ⇒ ActiveRecord_AssociationRelation<Notificaion>, Mongoid::Criteria<Notificaion>
Selects filtered notifications later than specified time.
154 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 154 scope :later_than, ->(created_time) { where(:created_at.gt => created_time) } |
.opened_index_group_members_only ⇒ Mongoid::Criteria<Notificaion>
Selects group member notifications in opened_index.
103 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 103 scope :opened_index_group_members_only, ->(limit) { where(:group_owner_id.in => opened_index(limit).map(&:id)) } |
.opened_only ⇒ Mongoid::Criteria<Notificaion>
Selects opened notifications only with limit.
92 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 92 scope :opened_only, ->(limit) { limit == 0 ? none : opened_only!.limit(limit) } |
.opened_only! ⇒ Mongoid::Criteria<Notificaion>
Selects opened notifications only without limit. Be careful to get too many records with this method.
86 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 86 scope :opened_only!, -> { where(:opened_at.exists => true) } |
.raise_delete_restriction_error(error_text) ⇒ void
This method returns an undefined value.
Raise ActivityNotification::DeleteRestrictionError for notifications.
202 203 204 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 202 def self.raise_delete_restriction_error(error_text) raise ActivityNotification::DeleteRestrictionError, error_text end |
.unopened_index_group_members_only ⇒ Mongoid::Criteria<Notificaion>
Selects group member notifications in unopened_index.
97 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 97 scope :unopened_index_group_members_only, -> { where(:group_owner_id.in => unopened_index.map(&:id)) } |
.unopened_only ⇒ Mongoid::Criteria<Notificaion>
Selects unopened notifications only.
80 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 80 scope :unopened_only, -> { where(:opened_at.exists => false) } |
.within_expiration_only ⇒ Mongoid::Criteria<Notificaion>
Selects notifications within expiration.
109 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 109 scope :within_expiration_only, ->(expiry_delay) { where(:created_at.gt => expiry_delay.ago) } |
Instance Method Details
#group ⇒ Object
Belongs to group instance of this notification as polymorphic association.
32 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 32 belongs_to_polymorphic_xdb_record :group, as_json_options: { methods: [:printable_type, :printable_group_name] } |
#group_members ⇒ Mongoid::Criteria<Notificaion>
Has many group member notification instances of this notification. Only group owner instance has :group_members value. Group member instance has nil as :group_members association.
51 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 51 has_many :group_members, class_name: "ActivityNotification::Notification", foreign_key: :group_owner_id |
#group_owner ⇒ Notification
Belongs to group owner notification instance of this notification. Only group member instance has :group_owner value. Group owner instance has nil as :group_owner association.
44 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 44 belongs_to :group_owner, { class_name: "ActivityNotification::Notification", optional: true } |
#group_owner? ⇒ Boolean
Returns if the notification is group owner. Calls NotificationApi#group_owner? as super method.
194 195 196 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 194 def group_owner? super end |
#notifiable ⇒ Object
Belongs to notifiable instance of this notification as polymorphic association.
27 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 27 belongs_to_polymorphic_xdb_record :notifiable, store_with_associated_records: true, as_json_options: { methods: [:printable_type] } |
#notifier ⇒ Object
Belongs to :otifier instance of this notification.
56 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 56 belongs_to_polymorphic_xdb_record :notifier, store_with_associated_records: true, as_json_options: { methods: [:printable_type, :printable_notifier_name] } |
#target ⇒ Object
Belongs to target instance of this notification as polymorphic association.
22 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 22 belongs_to_polymorphic_xdb_record :target, store_with_associated_records: true, as_json_options: { methods: [:printable_type, :printable_target_name] } |
#where ⇒ Mongoid::Criteria<Notification>
Selects filtered notifications by type of the object. Filtering with ActivityNotification::Notification is defined as default scope.
65 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 65 default_scope -> { where(_type: "ActivityNotification::Notification") } |
#with_group ⇒ Mongoid::Criteria<Notificaion>
Includes group instance with query for notifications.
174 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 174 scope :with_group, -> { } |
#with_group_members ⇒ Mongoid::Criteria<Notificaion>
Includes group member instances with query for notifications.
182 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 182 scope :with_group_members, -> { } |
#with_group_owner ⇒ Mongoid::Criteria<Notificaion>
Includes group owner instances with query for notifications.
178 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 178 scope :with_group_owner, -> { } |
#with_notifiable ⇒ Mongoid::Criteria<Notificaion>
Includes notifiable instance with query for notifications.
170 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 170 scope :with_notifiable, -> { } |
#with_notifier ⇒ Mongoid::Criteria<Notificaion>
Includes notifier instance with query for notifications.
186 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 186 scope :with_notifier, -> { } |
#with_target ⇒ Mongoid::Criteria<Notificaion>
Includes target instance with query for notifications.
166 |
# File 'lib/activity_notification/orm/mongoid/notification.rb', line 166 scope :with_target, -> { } |