X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/500c1bddf2640c0b59e8d761534f4bb99a83fbec..dc60d78cdabc06b3c2fe8cb923125a01fa6b3da6:/app/controllers/concerns/query_methods.rb diff --git a/app/controllers/concerns/query_methods.rb b/app/controllers/concerns/query_methods.rb index 672a8c602..eb0684283 100644 --- a/app/controllers/concerns/query_methods.rb +++ b/app/controllers/concerns/query_methods.rb @@ -3,6 +3,33 @@ module QueryMethods private + ## + # Filter the resulting items by user + def query_conditions_user(items, filter_property) + user = query_conditions_user_value + items = items.where(filter_property => user) if user + items + end + + ## + # Get user value for query filtering by user + # Raises OSM::APIBadUserInput if user not found like notes api does, changesets api raises OSM::APINotFoundError instead + def query_conditions_user_value + if params[:display_name] || params[:user] + if params[:display_name] + user = User.find_by(:display_name => params[:display_name]) + + raise OSM::APIBadUserInput, "User #{params[:display_name]} not known" unless user + else + user = User.find_by(:id => params[:user]) + + raise OSM::APIBadUserInput, "User #{params[:user]} not known" unless user + end + + user + end + end + ## # Restrict the resulting items to those created during a particular time period # Using 'to' requires specifying 'from' as well for historical reasons