Browse Source

started id to code refactoring

pull/671/head
JG 3 years ago
parent
commit
e727e0b219
  1. 4
      app/models/scheme.rb
  2. 10
      spec/models/scheme_spec.rb

4
app/models/scheme.rb

@ -5,10 +5,10 @@ class Scheme < ApplicationRecord
has_many :locations
has_many :case_logs
scope :search_by_code, ->(code) { where("code ILIKE ?", "%#{code}%") }
scope :filter_by_id, ->(id) { where(id: (id.start_with?("S") ? id[1..-1] : id))}
scope :search_by_service_name, ->(name) { where("service_name ILIKE ?", "%#{name}%") }
scope :search_by_postcode, ->(postcode) { joins(:locations).where("locations.postcode ILIKE ?", "%#{postcode.delete(' ')}%") }
scope :search_by, ->(param) { search_by_postcode(param).or(search_by_service_name(param)).or(search_by_code(param)).distinct }
scope :search_by, ->(param) { search_by_postcode(param).or(search_by_service_name(param)).or(filter_by_id(param)).distinct }
SENSITIVE = {
No: 0,

10
spec/models/scheme_spec.rb

@ -16,12 +16,10 @@ RSpec.describe Scheme, type: :model do
context "when searching by code" do
it "returns case insensitive matching records" do
expect(described_class.search_by_code(scheme_1.code.upcase).count).to eq(1)
expect(described_class.search_by_code(scheme_1.code.downcase).count).to eq(1)
expect(described_class.search_by_code(scheme_1.code.downcase).first.code).to eq(scheme_1.code)
expect(described_class.search_by_code(scheme_2.code.upcase).count).to eq(1)
expect(described_class.search_by_code(scheme_2.code.downcase).count).to eq(1)
expect(described_class.search_by_code(scheme_2.code.downcase).first.code).to eq(scheme_2.code)
expect(described_class.filter_by_id(scheme_1.id.to_s).count).to eq(1)
expect(described_class.filter_by_id(scheme_1.id.to_s).first.id).to eq(scheme_1.id)
expect(described_class.filter_by_id(scheme_2.id.to_s).count).to eq(1)
expect(described_class.filter_by_id(scheme_2.id.to_s).first.id).to eq(scheme_2.id)
end
end

Loading…
Cancel
Save