Sha256: a5f9c36622f30ca887f786948e88550b055183fa3af6709e911eddca50cd9c7a

Contents?: true

Size: 1.48 KB

Versions: 29

Compression:

Stored size: 1.48 KB

Contents

require "csv"
require "local_interaction"
require "safe_html"

class LocalAuthority
  include Mongoid::Document

  embeds_many :local_interactions

  field :name,               type: String
  field :snac,               type: String
  field :local_directgov_id, type: Integer
  field :tier,               type: String
  field :contact_address,    type: Array
  field :contact_url,        type: String
  field :contact_phone,      type: String
  field :contact_email,      type: String

  validates_uniqueness_of :snac
  validates_presence_of   :snac, :local_directgov_id, :name, :tier

  scope :for_snacs, ->(snacs) { any_in(snac: snacs) }

  def self.find_by_snac(snac)
    for_snacs([snac]).first
  end

  def provides_service?(lgsl_code, lgil_code = nil)
    interactions_for(lgsl_code, lgil_code).any?
  end

  def interactions_for(lgsl_code, lgil_code = nil)
    interactions = local_interactions.where(lgsl_code: lgsl_code)
    if lgil_code
      interactions.where(lgil_code: lgil_code)
    else
      interactions
    end
  end

  def preferred_interaction_for(lgsl_code, lgil_code = nil)
    interactions = local_interactions.where(lgsl_code: lgsl_code)
    if lgil_code
      interactions.where(lgil_code: lgil_code).first
    else
      interactions.excludes(
        lgil_code: LocalInteraction::LGIL_CODE_PROVIDING_INFORMATION
      ).order_by([:lgil_code, :asc]).first ||
      interactions.where(
        lgil_code: LocalInteraction::LGIL_CODE_PROVIDING_INFORMATION
      ).first
    end
  end

end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
govuk_content_models-32.1.0 app/models/local_authority.rb
govuk_content_models-32.0.0 app/models/local_authority.rb
govuk_content_models-31.4.0 app/models/local_authority.rb
govuk_content_models-31.3.0 app/models/local_authority.rb
govuk_content_models-31.2.2 app/models/local_authority.rb
govuk_content_models-31.2.1 app/models/local_authority.rb
govuk_content_models-31.2.0 app/models/local_authority.rb
govuk_content_models-31.1.0 app/models/local_authority.rb
govuk_content_models-31.0.0 app/models/local_authority.rb
govuk_content_models-30.0.0 app/models/local_authority.rb
govuk_content_models-29.1.2 app/models/local_authority.rb
govuk_content_models-29.1.1 app/models/local_authority.rb
govuk_content_models-29.1.0 app/models/local_authority.rb
govuk_content_models-29.0.1 app/models/local_authority.rb
govuk_content_models-29.0.0 app/models/local_authority.rb
govuk_content_models-28.10.0 app/models/local_authority.rb
govuk_content_models-28.9.0 app/models/local_authority.rb
govuk_content_models-28.8.0 app/models/local_authority.rb
govuk_content_models-28.7.1 app/models/local_authority.rb
govuk_content_models-28.7.0 app/models/local_authority.rb