scinote-web/app/models/webhook.rb

28 lines
726 B
Ruby

# frozen_string_literal: true
class Webhook < ApplicationRecord
enum http_method: { get: 0, post: 1, patch: 2 }
belongs_to :activity_filter
validates :http_method, presence: true
validates :url, presence: true
validate :enabled?
validate :valid_url
scope :active, -> { where(active: true) }
private
def enabled?
unless Rails.application.config.x.webhooks_enabled
errors.add(:configuration, I18n.t('activerecord.errors.models.webhook.attributes.configuration.disabled'))
end
end
def valid_url
unless /\A#{URI::DEFAULT_PARSER.make_regexp(%w(http https))}\z/.match?(url)
errors.add(:url, I18n.t('activerecord.errors.models.webhook.attributes.url.not_valid'))
end
end
end