summaryrefslogtreecommitdiff
path: root/web/lib/api/v4
diff options
context:
space:
mode:
Diffstat (limited to 'web/lib/api/v4')
-rw-r--r--web/lib/api/v4/key.rb4
-rw-r--r--web/lib/api/v4/keys.rb13
-rw-r--r--web/lib/api/v4/tag.rb7
3 files changed, 15 insertions, 9 deletions
diff --git a/web/lib/api/v4/key.rb b/web/lib/api/v4/key.rb
index 1cbb817..66fae48 100644
--- a/web/lib/api/v4/key.rb
+++ b/web/lib/api/v4/key.rb
@@ -83,7 +83,7 @@ class Taginfo < Sinatra::Base
condition('key = ?', key).
get_first_value() ||
@db.select('SELECT png FROM db.key_distributions').
- condition('key IS NULL').
+ is_null('key').
get_first_value()
end
@@ -101,7 +101,7 @@ class Taginfo < Sinatra::Base
condition('key = ?', key).
get_first_value() ||
@db.select('SELECT png FROM db.key_distributions').
- condition('key IS NULL').
+ is_null('key').
get_first_value()
end
diff --git a/web/lib/api/v4/keys.rb b/web/lib/api/v4/keys.rb
index 01739f7..6ea2ba8 100644
--- a/web/lib/api/v4/keys.rb
+++ b/web/lib/api/v4/keys.rb
@@ -76,9 +76,12 @@ class Taginfo < Sinatra::Base
row['wikipages'] = Array.new
end
+ key_list = res.map do |row|
+ "'" + SQLite3::Database.quote(row['key']) + "'"
+ end
+
wikipages = @db.select('SELECT key, lang, title, type FROM wiki.wikipages').
- condition("value IS NULL").
- condition("key IN (#{ res.map{ |row| "'" + SQLite3::Database.quote(row['key']) + "'" }.join(',') })").
+ condition("key IN (#{ key_list.join(',') }) AND value IS NULL").
order_by([:key, :lang], 'ASC').
execute()
@@ -96,8 +99,12 @@ class Taginfo < Sinatra::Base
row['prevalent_values'] = Array.new
end
+ key_list = res.map do |row|
+ "'" + SQLite3::Database.quote(row['key']) + "'"
+ end
+
prevvalues = @db.select('SELECT key, value, count, fraction FROM db.prevalent_values').
- condition("key IN (#{ res.map{ |row| "'" + SQLite3::Database.quote(row['key']) + "'" }.join(',') })").
+ condition("key IN (#{ key_list.join(',') })").
order_by([:count], 'DESC').
execute()
diff --git a/web/lib/api/v4/tag.rb b/web/lib/api/v4/tag.rb
index 778fd4a..d05f73f 100644
--- a/web/lib/api/v4/tag.rb
+++ b/web/lib/api/v4/tag.rb
@@ -100,7 +100,7 @@ class Taginfo < Sinatra::Base
condition('value = ?', value).
get_first_value() ||
@db.select('SELECT png FROM db.key_distributions').
- condition('key IS NULL').
+ is_null('key').
get_first_value()
end
@@ -120,7 +120,7 @@ class Taginfo < Sinatra::Base
condition('value = ?', value).
get_first_value() ||
@db.select('SELECT png FROM db.key_distributions').
- condition('key IS NULL').
+ is_null('key').
get_first_value()
end
@@ -190,8 +190,7 @@ class Taginfo < Sinatra::Base
end
@db.select('SELECT * FROM db.tags').
- condition('key = ?', key).
- condition('value = ?', value).
+ condition('key = ? AND value = ?', key, value).
execute() do |row|
['all', 'nodes', 'ways', 'relations'].each_with_index do |type, n|
out[n] = {