مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-11-30 21:32:30 +00:00
initial commit from appmail
هذا الالتزام موجود في:
0
app/models/concerns/.keep
Normal file
0
app/models/concerns/.keep
Normal file
38
app/models/concerns/has_message.rb
Normal file
38
app/models/concerns/has_message.rb
Normal file
@@ -0,0 +1,38 @@
|
||||
module HasMessage
|
||||
|
||||
def self.included(base)
|
||||
base.extend ClassMethods
|
||||
end
|
||||
|
||||
def message
|
||||
@message ||= self.server.message_db.message(self.message_id)
|
||||
end
|
||||
|
||||
def message=(message)
|
||||
@message = message
|
||||
self.message_id = message&.id
|
||||
end
|
||||
|
||||
module ClassMethods
|
||||
def include_message
|
||||
queued_messages = all.to_a
|
||||
server_ids = queued_messages.map(&:server_id).uniq
|
||||
if server_ids.size == 0
|
||||
return []
|
||||
elsif server_ids.size > 1
|
||||
raise Postal::Error, "'include_message' can only be used on collections of messages from the same server"
|
||||
end
|
||||
message_ids = queued_messages.map(&:message_id).uniq
|
||||
server = queued_messages.first&.server
|
||||
messages = server.message_db.messages(:where => {:id => message_ids}).each_with_object({}) do |message, hash|
|
||||
hash[message.id] = message
|
||||
end
|
||||
queued_messages.each do |queued_message|
|
||||
if m = messages[queued_message.message_id]
|
||||
queued_message.message = m
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
19
app/models/concerns/has_soft_destroy.rb
Normal file
19
app/models/concerns/has_soft_destroy.rb
Normal file
@@ -0,0 +1,19 @@
|
||||
module HasSoftDestroy
|
||||
|
||||
def self.included(base)
|
||||
base.define_callbacks :soft_destroy
|
||||
base.class_eval do
|
||||
scope :deleted, -> { where.not(:deleted_at => nil) }
|
||||
scope :present, -> { where(:deleted_at => nil) }
|
||||
end
|
||||
end
|
||||
|
||||
def soft_destroy
|
||||
run_callbacks :soft_destroy do
|
||||
self.deleted_at = Time.now
|
||||
self.save!
|
||||
ActionDeletionJob.queue(:main, :type => self.class.name, :id => self.id)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
11
app/models/concerns/has_uuid.rb
Normal file
11
app/models/concerns/has_uuid.rb
Normal file
@@ -0,0 +1,11 @@
|
||||
module HasUUID
|
||||
def self.included(base)
|
||||
base.class_eval do
|
||||
random_string :uuid, :type => :uuid, :unique => true
|
||||
end
|
||||
end
|
||||
|
||||
def to_param
|
||||
uuid
|
||||
end
|
||||
end
|
||||
المرجع في مشكلة جديدة
حظر مستخدم