1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-11-30 21:32:30 +00:00

feat: add priorities to IP address assignment

هذا الالتزام موجود في:
Adam Cooke
2021-07-27 21:25:07 +00:00
الأصل daf469ce7f
التزام 21a8d89045
7 ملفات معدلة مع 52 إضافات و7 حذوفات

عرض الملف

@@ -9,6 +9,7 @@
# created_at :datetime
# updated_at :datetime
# hostname :string(255)
# priority :integer
#
class IPAddress < ApplicationRecord
@@ -18,5 +19,26 @@ class IPAddress < ApplicationRecord
validates :ipv4, :presence => true, :uniqueness => true
validates :hostname, :presence => true
validates :ipv6, :uniqueness => {:allow_blank => true}
validates :priority, numericality: { greater_than_or_equal_to: 0, less_than_or_equal_to: 100, only_integer: true }
scope :order_by_priority, -> { order(priority: :desc) }
before_validation :set_default_priority
private
def set_default_priority
return if priority.present?
self.priority = 100
end
class << self
def select_by_priority
order(Arel.sql("RAND() * priority DESC")).first
end
end
end