mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-04 04:57:51 +00:00 
			
		
		
		
	- Increase the external url field validation to 2048 characters fixes: https://github.com/chatwoot/chatwoot/issues/7098
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# == Schema Information
 | 
						|
#
 | 
						|
# Table name: channel_api
 | 
						|
#
 | 
						|
#  id                    :bigint           not null, primary key
 | 
						|
#  additional_attributes :jsonb
 | 
						|
#  hmac_mandatory        :boolean          default(FALSE)
 | 
						|
#  hmac_token            :string
 | 
						|
#  identifier            :string
 | 
						|
#  webhook_url           :string
 | 
						|
#  created_at            :datetime         not null
 | 
						|
#  updated_at            :datetime         not null
 | 
						|
#  account_id            :integer          not null
 | 
						|
#
 | 
						|
# Indexes
 | 
						|
#
 | 
						|
#  index_channel_api_on_hmac_token  (hmac_token) UNIQUE
 | 
						|
#  index_channel_api_on_identifier  (identifier) UNIQUE
 | 
						|
#
 | 
						|
 | 
						|
class Channel::Api < ApplicationRecord
 | 
						|
  include Channelable
 | 
						|
 | 
						|
  self.table_name = 'channel_api'
 | 
						|
  EDITABLE_ATTRS = [:webhook_url, :hmac_mandatory, { additional_attributes: {} }].freeze
 | 
						|
 | 
						|
  has_secure_token :identifier
 | 
						|
  has_secure_token :hmac_token
 | 
						|
  validate :ensure_valid_agent_reply_time_window
 | 
						|
  validates :webhook_url, length: { maximum: Limits::URL_LENGTH_LIMIT }
 | 
						|
 | 
						|
  def name
 | 
						|
    'API'
 | 
						|
  end
 | 
						|
 | 
						|
  def messaging_window_enabled?
 | 
						|
    additional_attributes.present? && additional_attributes['agent_reply_time_window'].present?
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def ensure_valid_agent_reply_time_window
 | 
						|
    return if additional_attributes['agent_reply_time_window'].blank?
 | 
						|
    return if additional_attributes['agent_reply_time_window'].to_i.positive?
 | 
						|
 | 
						|
    errors.add(:agent_reply_time_window, 'agent_reply_time_window must be greater than 0')
 | 
						|
  end
 | 
						|
end
 |