1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2026-01-16 21:23:37 +00:00

initial commit from appmail

هذا الالتزام موجود في:
Adam Cooke
2017-04-19 13:07:25 +01:00
الأصل a3eff53792
التزام 2fdba0ceb5
474 ملفات معدلة مع 51228 إضافات و0 حذوفات

60
app/models/webhook.rb Normal file
عرض الملف

@@ -0,0 +1,60 @@
# == Schema Information
#
# Table name: webhooks
#
# id :integer not null, primary key
# server_id :integer
# uuid :string(255)
# name :string(255)
# url :string(255)
# last_used_at :datetime
# all_events :boolean default(FALSE)
# enabled :boolean default(TRUE)
# sign :boolean default(TRUE)
# created_at :datetime
# updated_at :datetime
#
# Indexes
#
# index_webhooks_on_server_id (server_id)
#
class Webhook < ApplicationRecord
include HasUUID
belongs_to :server
has_many :webhook_events, :dependent => :destroy
has_many :webhook_requests
validates :name, :presence => true
validates :url, :presence => true, :format => {:with => /\Ahttps?\:\/\/[a-z0-9\-\.\_\?\&\/\+]+\z/i, :allow_blank => true}
scope :enabled, -> { where(:enabled => true) }
after_save :save_events
when_attribute :all_events, :changes_to => true do
after_save do
self.webhook_events.destroy_all
end
end
def events
@events ||= webhook_events.map(&:event)
end
def events=(value)
@events = value.map(&:to_s).select(&:present?)
end
def save_events
if @events
@events.each do |event|
webhook_events.where(:event => event).first_or_create!
end
webhook_events.where.not(:event => @events).destroy_all
end
end
end