diff options
author | Jochen Topf <jochen@topf.org> | 2014-05-12 11:32:02 +0200 |
---|---|---|
committer | Jochen Topf <jochen@topf.org> | 2014-05-12 11:32:02 +0200 |
commit | 213741fd9bb5493112634dcc1dc14c41b7182399 (patch) | |
tree | 7734533e10e7664af73551b383a1d3e45f15370d /web/lib/api/search.rb | |
parent | b46b21e3437a8ea04429995c038b64d654eaa48e (diff) | |
download | taginfo-213741fd9bb5493112634dcc1dc14c41b7182399.tar taginfo-213741fd9bb5493112634dcc1dc14c41b7182399.tar.gz |
Remove old API versions (2 and 3).
The API v4 has been available since January 2013. Enough time to switch over.
Diffstat (limited to 'web/lib/api/search.rb')
-rw-r--r-- | web/lib/api/search.rb | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/web/lib/api/search.rb b/web/lib/api/search.rb deleted file mode 100644 index 037a55c..0000000 --- a/web/lib/api/search.rb +++ /dev/null @@ -1,107 +0,0 @@ -# web/lib/api/search.rb -class Taginfo < Sinatra::Base - - api(2, 'search/values', { - :superseded_by => '4/search/by_value', - :description => 'Search all tag values for string.', - :parameters => { :q => 'Value to search for (substring search, required).' }, - :sort => %w( count_all key value ), - :paging => :optional, - :result => { - :key => :STRING, - :value => :STRING, - :count_all => :INT - }, - :example => { :q => 'foo', :page => 1, :rp => 10 }, - :ui => '/search?q=foo#values' - }) do - query = params[:q] - - total = @db.count('search.ftsearch'). - condition_if("value MATCH ?", query). - get_first_value().to_i - - res = @db.select('SELECT * FROM search.ftsearch'). - condition_if("value MATCH ?", query). - order_by(@ap.sortname, @ap.sortorder) { |o| - o.count_all - o.key - o.value - }. - paging(@ap). - execute() - - return { - :page => @ap.page, - :rp => @ap.results_per_page, - :total => total, - :data => res.map{ |row| { - :key => row['key'], - :value => row['value'], - :count_all => row['count_all'].to_i, - }} - }.to_json - end - - api(2, 'search/tags') do - query = params[:q] - (query_key, query_value) = query.split('=', 2) - - if query_key == '' - total = @db.execute('SELECT count(*) FROM search.ftsearch WHERE value MATCH ?', query_value)[0][0].to_i - sel = @db.select('SELECT * FROM search.ftsearch WHERE value MATCH ?', query_value) - elsif query_value == '' - total = @db.execute('SELECT count(*) FROM search.ftsearch WHERE key MATCH ?', query_key)[0][0].to_i - sel = @db.select('SELECT * FROM search.ftsearch WHERE key MATCH ?', query_key) - else - total = @db.execute('SELECT count(*) FROM (SELECT * FROM search.ftsearch WHERE key MATCH ? INTERSECT SELECT * FROM search.ftsearch WHERE value MATCH ?)', query_key, query_value)[0][0].to_i - sel = @db.select('SELECT * FROM search.ftsearch WHERE key MATCH ? INTERSECT SELECT * FROM search.ftsearch WHERE value MATCH ?', query_key, query_value) - end - - res = sel. - order_by(@ap.sortname, @ap.sortorder) { |o| - o.count_all - o.key - o.value - }. - paging(@ap). - execute() - - return { - :page => @ap.page, - :rp => @ap.results_per_page, - :total => total, - :data => res.map{ |row| { - :key => row['key'], - :value => row['value'], - :count_all => row['count_all'].to_i, - }} - }.to_json - end - - api(2, 'search/wikipages') do - query = params[:q].downcase - - total = @db.count('wiki.words').condition("words LIKE ('%' || ? || '%')", query).get_first_value().to_i - sel = @db.select("SELECT key, value FROM wiki.words WHERE words LIKE ('%' || ? || '%')", query) - - res = sel. - order_by(@ap.sortname, @ap.sortorder) { |o| - o.key - o.value - }. - paging(@ap). - execute() - - return { - :page => @ap.page, - :rp => @ap.results_per_page, - :total => total, - :data => res.map{ |row| { - :key => row['key'], - :value => row['value'] - }} - }.to_json - end - -end |