Skip to content
Snippets Groups Projects
website.rb 1.38 KiB
Newer Older
Arnaud Levy's avatar
Arnaud Levy committed
# == Schema Information
#
pabois's avatar
pabois committed
# Table name: communication_websites
Arnaud Levy's avatar
Arnaud Levy committed
#
#  id            :uuid             not null, primary key
#  domain        :string
#  name          :string
#  created_at    :datetime         not null
#  updated_at    :datetime         not null
#  university_id :uuid             not null
#
# Indexes
#
pabois's avatar
pabois committed
#  index_communication_websites_on_university_id  (university_id)
Arnaud Levy's avatar
Arnaud Levy committed
#
# Foreign Keys
#
#  fk_rails_...  (university_id => universities.id)
#
Arnaud Levy's avatar
Arnaud Levy committed
class Communication::Website < ApplicationRecord
Arnaud Levy's avatar
Arnaud Levy committed
  belongs_to :university
Arnaud Levy's avatar
Arnaud Levy committed
  has_many :pages, foreign_key: :communication_website_id
Arnaud Levy's avatar
Arnaud Levy committed

Arnaud Levy's avatar
Arnaud Levy committed
  def self.with_host(host)
    find_by domain: extract_domain_from(host)
  end

  # Website domain
  # Production with domain    www.iut.u-bordeaux-montaigne.fr
  # Production without        www.iut.u-bordeaux-montaigne.fr.websites.osuny.org
  # Staging                   www.iut.u-bordeaux-montaigne.fr.websites.osuny.dev
  # Dev                       www.iut.u-bordeaux-montaigne.fr.websites.osuny
  def self.extract_domain_from(host)
    host.remove('.websites.osuny.org')
        .remove('.websites.osuny.dev')
        .remove('.websites.osuny')
  end

Arnaud Levy's avatar
Arnaud Levy committed
  def domain_url
    case Rails.env
    when 'development'
Arnaud Levy's avatar
Arnaud Levy committed
      "http://#{domain}.websites.osuny:3000"
Arnaud Levy's avatar
Arnaud Levy committed
    when 'staging'
Arnaud Levy's avatar
Arnaud Levy committed
      "https://#{domain}.websites.osuny.dev"
Arnaud Levy's avatar
Arnaud Levy committed
    when 'production'
      "https://#{domain}"
    end
  end

  def to_s
    "#{name}"
  end
end