af83/chouette-core

View on GitHub
app/lib/query/vehicle_journey.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module Query
  class VehicleJourney < Base
    def text(value)
      change_scope(if: value.present?) do |scope|
        published_journey_name = scope.arel_table[:published_journey_name]
        objectid = scope.arel_table[:objectid]
        scope.where(published_journey_name.matches("%#{value}%")).or( scope.where(objectid.matches("%#{value}%")) )
      end
    end

    def company(value)
      change_scope(if: value.present?) do |scope|
        scope.with_companies([value])
      end
    end

    def line(value)
      change_scope(if: value.present?) do |scope|
        scope.with_lines([value])
      end
    end

    def time_table(value)
      change_scope(if: value.present?) do |scope|
        scope.with_matching_timetable(value)
      end
    end

    def between_stop_areas(from_stop_area, to_stop_area)
      change_scope(if: (from_stop_area.present? && to_stop_area.present?)) do |scope|
        scope.with_ordered_stop_area_ids(from_stop_area, to_stop_area)
      end

      change_scope(if: (from_stop_area.present? || to_stop_area.present?)) do |scope|
        stop_area_id = from_stop_area || to_stop_area
        scope.with_stop_area_id(stop_area_id)
      end
    end
    
  end
end