1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-11-30 21:32:30 +00:00
الملفات
postal/app/models/http_endpoint.rb
2017-04-19 13:07:25 +01:00

58 أسطر
1.5 KiB
Ruby

# == 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