diff --git a/app/models/channel/web_widget.rb b/app/models/channel/web_widget.rb index 2efe74881..faa1126f3 100644 --- a/app/models/channel/web_widget.rb +++ b/app/models/channel/web_widget.rb @@ -41,6 +41,7 @@ class Channel::WebWidget < ApplicationRecord before_validation :validate_pre_chat_options validates :website_url, presence: true validates :widget_color, presence: true + has_many :portals, foreign_key: 'channel_web_widget_id', dependent: :nullify, inverse_of: :channel_web_widget has_secure_token :website_token has_secure_token :hmac_token diff --git a/app/models/portal.rb b/app/models/portal.rb index 269f64110..cc64be1fd 100644 --- a/app/models/portal.rb +++ b/app/models/portal.rb @@ -2,24 +2,26 @@ # # Table name: portals # -# id :bigint not null, primary key -# archived :boolean default(FALSE) -# color :string -# config :jsonb -# custom_domain :string -# header_text :text -# homepage_link :string -# name :string not null -# page_title :string -# slug :string not null -# created_at :datetime not null -# updated_at :datetime not null -# account_id :integer not null +# id :bigint not null, primary key +# archived :boolean default(FALSE) +# color :string +# config :jsonb +# custom_domain :string +# header_text :text +# homepage_link :string +# name :string not null +# page_title :string +# slug :string not null +# created_at :datetime not null +# updated_at :datetime not null +# account_id :integer not null +# channel_web_widget_id :bigint # # Indexes # -# index_portals_on_custom_domain (custom_domain) UNIQUE -# index_portals_on_slug (slug) UNIQUE +# index_portals_on_channel_web_widget_id (channel_web_widget_id) +# index_portals_on_custom_domain (custom_domain) UNIQUE +# index_portals_on_slug (slug) UNIQUE # class Portal < ApplicationRecord include Rails.application.routes.url_helpers @@ -38,6 +40,7 @@ class Portal < ApplicationRecord source: :user has_one_attached :logo has_many :inboxes, dependent: :nullify + belongs_to :channel_web_widget, class_name: 'Channel::WebWidget', optional: true before_validation -> { normalize_empty_string_to_nil(%i[custom_domain homepage_link]) } validates :account_id, presence: true @@ -50,7 +53,7 @@ class Portal < ApplicationRecord scope :active, -> { where(archived: false) } - CONFIG_JSON_KEYS = %w[allowed_locales default_locale].freeze + CONFIG_JSON_KEYS = %w[allowed_locales default_locale website_token].freeze def file_base_data { diff --git a/app/views/layouts/portal.html.erb b/app/views/layouts/portal.html.erb index 483ca3809..f3f008305 100644 --- a/app/views/layouts/portal.html.erb +++ b/app/views/layouts/portal.html.erb @@ -38,7 +38,7 @@ By default, it renders: <% else %>