مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-11-30 21:32:30 +00:00
feat: new background work process
This removes all previous dependencies on RabbitMQ and the need to run separate cron and requeueing processes.
هذا الالتزام موجود في:
23
spec/factories/ip_address_factory.rb
Normal file
23
spec/factories/ip_address_factory.rb
Normal file
@@ -0,0 +1,23 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: ip_addresses
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# hostname :string(255)
|
||||
# ipv4 :string(255)
|
||||
# ipv6 :string(255)
|
||||
# priority :integer
|
||||
# created_at :datetime
|
||||
# updated_at :datetime
|
||||
# ip_pool_id :integer
|
||||
#
|
||||
FactoryBot.define do
|
||||
factory :ip_address do
|
||||
ip_pool
|
||||
ipv4 { "10.0.0.1" }
|
||||
ipv6 { "2001:0db8:85a3:0000:0000:8a2e:0370:7334" }
|
||||
hostname { "ip.example.com" }
|
||||
end
|
||||
end
|
||||
23
spec/factories/ip_pool_factory.rb
Normal file
23
spec/factories/ip_pool_factory.rb
Normal file
@@ -0,0 +1,23 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: ip_pools
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# default :boolean default(FALSE)
|
||||
# name :string(255)
|
||||
# uuid :string(255)
|
||||
# created_at :datetime
|
||||
# updated_at :datetime
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_ip_pools_on_uuid (uuid)
|
||||
#
|
||||
FactoryBot.define do
|
||||
factory :ip_pool do
|
||||
name { "Default Pool" }
|
||||
default { true }
|
||||
end
|
||||
end
|
||||
40
spec/factories/queued_message_factory.rb
Normal file
40
spec/factories/queued_message_factory.rb
Normal file
@@ -0,0 +1,40 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: queued_messages
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# attempts :integer default(0)
|
||||
# batch_key :string(255)
|
||||
# domain :string(255)
|
||||
# locked_at :datetime
|
||||
# locked_by :string(255)
|
||||
# manual :boolean default(FALSE)
|
||||
# retry_after :datetime
|
||||
# created_at :datetime
|
||||
# updated_at :datetime
|
||||
# ip_address_id :integer
|
||||
# message_id :integer
|
||||
# route_id :integer
|
||||
# server_id :integer
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_queued_messages_on_domain (domain)
|
||||
# index_queued_messages_on_message_id (message_id)
|
||||
# index_queued_messages_on_server_id (server_id)
|
||||
#
|
||||
FactoryBot.define do
|
||||
factory :queued_message do
|
||||
server
|
||||
message_id { 1234 }
|
||||
domain { "example.com" }
|
||||
batch_key { nil }
|
||||
|
||||
trait :locked do
|
||||
locked_by { "worker1" }
|
||||
locked_at { 5.minutes.ago }
|
||||
end
|
||||
end
|
||||
end
|
||||
10
spec/factories/webhook_factory.rb
Normal file
10
spec/factories/webhook_factory.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
FactoryBot.define do
|
||||
factory :webhook do
|
||||
server
|
||||
name { "Example Webhook" }
|
||||
url { "https://example.com" }
|
||||
all_events { true }
|
||||
end
|
||||
end
|
||||
41
spec/factories/webhook_request_factory.rb
Normal file
41
spec/factories/webhook_request_factory.rb
Normal file
@@ -0,0 +1,41 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: webhook_requests
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# attempts :integer default(0)
|
||||
# error :text(65535)
|
||||
# event :string(255)
|
||||
# locked_at :datetime
|
||||
# locked_by :string(255)
|
||||
# payload :text(65535)
|
||||
# retry_after :datetime
|
||||
# url :string(255)
|
||||
# uuid :string(255)
|
||||
# created_at :datetime
|
||||
# server_id :integer
|
||||
# webhook_id :integer
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_webhook_requests_on_locked_by (locked_by)
|
||||
#
|
||||
FactoryBot.define do
|
||||
factory :webhook_request do
|
||||
webhook
|
||||
url { "https://example.com" }
|
||||
event { "ExampleEvent" }
|
||||
payload { { "hello" => "world" } }
|
||||
|
||||
before(:create) do |webhook_request|
|
||||
webhook_request.server = webhook_request.webhook&.server
|
||||
end
|
||||
|
||||
trait :locked do
|
||||
locked_by { "test" }
|
||||
locked_at { 5.minutes.ago }
|
||||
end
|
||||
end
|
||||
end
|
||||
7
spec/factories/worker_role_factory.rb
Normal file
7
spec/factories/worker_role_factory.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
FactoryBot.define do
|
||||
factory :worker_role do
|
||||
role { "test" }
|
||||
end
|
||||
end
|
||||
المرجع في مشكلة جديدة
حظر مستخدم