2019-11-30 13:39:55 +00:00
|
|
|
# == Schema Information
|
|
|
|
#
|
|
|
|
# Table name: channel_web_widgets
|
|
|
|
#
|
|
|
|
# id :integer not null, primary key
|
|
|
|
# website_name :string
|
|
|
|
# website_token :string
|
|
|
|
# website_url :string
|
|
|
|
# widget_color :string default("#1f93ff")
|
|
|
|
# created_at :datetime not null
|
|
|
|
# updated_at :datetime not null
|
|
|
|
# account_id :integer
|
|
|
|
#
|
|
|
|
# Indexes
|
|
|
|
#
|
|
|
|
# index_channel_web_widgets_on_website_token (website_token) UNIQUE
|
|
|
|
#
|
|
|
|
|
2019-10-20 10:49:12 +00:00
|
|
|
module Channel
|
|
|
|
class WebWidget < ApplicationRecord
|
|
|
|
self.table_name = 'channel_web_widgets'
|
|
|
|
|
2019-10-29 07:20:54 +00:00
|
|
|
validates :website_name, presence: true
|
|
|
|
validates :website_url, presence: true
|
2019-12-28 16:26:42 +00:00
|
|
|
validates :widget_color, presence: true
|
2019-10-29 07:20:54 +00:00
|
|
|
|
2019-10-20 10:49:12 +00:00
|
|
|
belongs_to :account
|
|
|
|
has_one :inbox, as: :channel, dependent: :destroy
|
2019-10-29 07:20:54 +00:00
|
|
|
has_secure_token :website_token
|
|
|
|
|
2019-11-17 08:45:05 +00:00
|
|
|
def name
|
|
|
|
'Website'
|
|
|
|
end
|
|
|
|
|
2019-10-29 07:20:54 +00:00
|
|
|
def create_contact_inbox
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
contact = inbox.account.contacts.create!(name: ::Haikunator.haikunate(1000))
|
|
|
|
::ContactInbox.create!(
|
|
|
|
contact_id: contact.id,
|
|
|
|
inbox_id: inbox.id,
|
|
|
|
source_id: SecureRandom.uuid
|
|
|
|
)
|
|
|
|
rescue StandardError => e
|
|
|
|
Rails.logger e
|
|
|
|
end
|
|
|
|
end
|
2019-10-20 10:49:12 +00:00
|
|
|
end
|
|
|
|
end
|