مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2026-01-18 05:49:47 +00:00
initial commit from appmail
هذا الالتزام موجود في:
57
app/models/http_endpoint.rb
Normal file
57
app/models/http_endpoint.rb
Normal file
@@ -0,0 +1,57 @@
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: http_endpoints
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# server_id :integer
|
||||
# uuid :string(255)
|
||||
# name :string(255)
|
||||
# url :string(255)
|
||||
# encoding :string(255)
|
||||
# format :string(255)
|
||||
# strip_replies :boolean default(FALSE)
|
||||
# error :text(65535)
|
||||
# disabled_until :datetime
|
||||
# last_used_at :datetime
|
||||
# created_at :datetime
|
||||
# updated_at :datetime
|
||||
# include_attachments :boolean default(TRUE)
|
||||
# timeout :integer
|
||||
#
|
||||
|
||||
class HTTPEndpoint < ApplicationRecord
|
||||
|
||||
DEFAULT_TIMEOUT = 5
|
||||
|
||||
include HasUUID
|
||||
|
||||
belongs_to :server
|
||||
has_many :routes, :as => :endpoint
|
||||
has_many :additional_route_endpoints, :dependent => :destroy, :as => :endpoint
|
||||
|
||||
ENCODINGS = ['BodyAsJSON', 'FormData']
|
||||
FORMATS = ['Hash', 'RawMessage']
|
||||
|
||||
before_destroy :update_routes
|
||||
|
||||
validates :name, :presence => true
|
||||
validates :url, :presence => true
|
||||
validates :encoding, :inclusion => {:in => ENCODINGS}
|
||||
validates :format, :inclusion => {:in => FORMATS}
|
||||
validates :timeout, :numericality => {:greater_than_or_equal_to => 5, :less_than_or_equal_to => 60}
|
||||
|
||||
default_value :timeout, -> { DEFAULT_TIMEOUT }
|
||||
|
||||
def description
|
||||
"#{name} (#{url})"
|
||||
end
|
||||
|
||||
def mark_as_used
|
||||
update_column(:last_used_at, Time.now)
|
||||
end
|
||||
|
||||
def update_routes
|
||||
self.routes.each { |r| r.update(:endpoint => nil, :mode => 'Reject') }
|
||||
end
|
||||
|
||||
end
|
||||
المرجع في مشكلة جديدة
حظر مستخدم