Skip to content

Commit

Permalink
Merge branch 'nimmo-validation-refactor' into nimmo-box-scopes-params…
Browse files Browse the repository at this point in the history
…-and-methods
  • Loading branch information
nimmolo committed Feb 4, 2025
2 parents 0dc219d + 79b3f7c commit 761c700
Show file tree
Hide file tree
Showing 16 changed files with 165 additions and 206 deletions.
3 changes: 1 addition & 2 deletions app/classes/query/external_links.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ def initialize_flavor
add_sort_order_to_title
add_owner_and_time_stamp_conditions
initialize_observations_parameter(:external_links)
add_id_condition("external_links.external_site_id",
lookup_external_sites_by_name(params[:external_sites]))
add_id_condition("external_links.external_site_id", params[:external_sites])
add_search_condition("external_links.url", params[:url])
super
end
Expand Down
4 changes: 2 additions & 2 deletions app/classes/query/initializers/descriptions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -112,14 +112,14 @@ def initialize_desc_type_parameter(type)
def initialize_desc_project_parameter(type)
add_id_condition(
"#{type}_descriptions.project_id",
lookup_projects_by_name(params[:desc_project])
params[:desc_project]
)
end

def initialize_desc_creator_parameter(type)
add_id_condition(
"#{type}_descriptions.user_id",
lookup_users_by_name(params[:desc_creator])
params[:desc_creator]
)
end

Expand Down
10 changes: 4 additions & 6 deletions app/classes/query/initializers/names.rb
Original file line number Diff line number Diff line change
Expand Up @@ -125,24 +125,22 @@ def initialize_name_parameters(*joins)

table = params[:include_all_name_proposals] ? "namings" : "observations"
column = "#{table}.name_id"
ids = lookup_names_by_name(params[:names], names_parameters)
add_id_condition(column, ids, *joins)
add_id_condition(column, params[:names], *joins)

add_join(:observations, :namings) if params[:include_all_name_proposals]
return unless params[:exclude_consensus]

column = "observations.name_id"
add_not_id_condition(column, ids, *joins)
add_not_id_condition(column, params[:names], *joins)
end

def force_empty_results
@where = ["FALSE"]
end

# Much simpler form for non-observation-based name queries.
def initialize_name_parameters_for_name_queries
# Much simpler form for non-observation-based name queries.
ids = lookup_names_by_name(params[:names], names_parameters)
add_id_condition("names.id", ids)
add_id_condition("names.id", params[:names])
end

# Copy only the names_parameters into a name_params hash we use here.
Expand Down
2 changes: 1 addition & 1 deletion app/classes/query/initializers/observations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def initialize_field_slips_parameter
add_join(:field_slips)
add_id_condition(
"field_slips.id",
lookup_field_slips_by_name(params[:field_slips]),
params[:field_slips],
:observations
)
end
Expand Down
3 changes: 1 addition & 2 deletions app/classes/query/location_descriptions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ def initialize_flavor
add_by_user_condition
add_desc_by_author_condition(:location)
add_desc_by_editor_condition(:location)
locations = lookup_locations_by_name(params[:locations])
add_id_condition("location_descriptions.location_id", locations)
add_id_condition("location_descriptions.location_id", params[:locations])
initialize_description_public_parameter(:location)
super
end
Expand Down
20 changes: 5 additions & 15 deletions app/classes/query/modules/associations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,14 @@ def initialize_herbaria_parameter(
joins = [:observations, :observation_herbarium_records, :herbarium_records]
)
add_id_condition(
"herbarium_records.herbarium_id",
lookup_herbaria_by_name(params[:herbaria]),
*joins
"herbarium_records.herbarium_id", params[:herbaria], *joins
)
end

def initialize_herbarium_records_parameter
add_id_condition(
"observation_herbarium_records.herbarium_record_id",
lookup_herbarium_records_by_name(params[:herbarium_records]),
params[:herbarium_records],
:observations, :observation_herbarium_records
)
end
Expand All @@ -25,7 +23,7 @@ def add_where_condition(table, vals, *)

loc_col = "#{table}.location_id"
where_col = "#{table}.where"
ids = clean_id_set(lookup_locations_by_name(vals))
ids = clean_id_set(vals)
cond = "#{loc_col} IN (#{ids})"
vals.each do |val|
if /\D/.match?(val.to_s)
Expand Down Expand Up @@ -82,11 +80,7 @@ def add_for_project_condition(table = model.table_name, joins = [table])

def initialize_projects_parameter(table = :project_observations,
joins = [:observations, table])
add_id_condition(
"#{table}.project_id",
lookup_projects_by_name(params[:projects]),
*joins
)
add_id_condition("#{table}.project_id", params[:projects], *joins)
end

def add_in_species_list_condition(table = :species_list_observations,
Expand All @@ -104,10 +98,6 @@ def add_in_species_list_condition(table = :species_list_observations,
def initialize_species_lists_parameter(
table = :species_list_observations, joins = [:observations, table]
)
add_id_condition(
"#{table}.species_list_id",
lookup_species_lists_by_name(params[:species_lists]),
*joins
)
add_id_condition("#{table}.species_list_id", params[:species_lists], *joins)
end
end
2 changes: 1 addition & 1 deletion app/classes/query/modules/conditions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module Query::Modules::Conditions
def add_owner_and_time_stamp_conditions(table = model.table_name)
add_time_condition("#{table}.created_at", params[:created_at])
add_time_condition("#{table}.updated_at", params[:updated_at])
add_id_condition("#{table}.user_id", lookup_users_by_name(params[:users]))
add_id_condition("#{table}.user_id", params[:users])
end

def add_by_user_condition(table = model.table_name)
Expand Down
Loading

0 comments on commit 761c700

Please sign in to comment.