+6
app/query_parser.rb
+6
app/query_parser.rb
+3
-4
app/server.rb
+3
-4
app/server.rb
···
7
require 'sinatra/base'
8
9
require_relative 'init'
10
-
require_relative 'models/like'
11
require_relative 'models/user'
12
13
class Server < Sinatra::Application
14
class PKeyCache
···
108
return json_error('MissingParameter', 'Missing "collection" parameter')
109
end
110
111
-
query = params[:query].gsub('%', "\\%")
112
-
words = query.strip.split(/ +/)
113
114
collection = case params[:collection]
115
when 'likes' then user.likes
···
122
items = collection
123
.joins(:post)
124
.includes(:post => :user)
125
-
.matching_terms(words)
126
.reverse_chronologically
127
.after_cursor(params[:cursor])
128
.limit(PAGE_LIMIT)
···
7
require 'sinatra/base'
8
9
require_relative 'init'
10
require_relative 'models/user'
11
+
require_relative 'query_parser'
12
13
class Server < Sinatra::Application
14
class PKeyCache
···
108
return json_error('MissingParameter', 'Missing "collection" parameter')
109
end
110
111
+
terms = QueryParser.new.parse_terms(params[:query])
112
113
collection = case params[:collection]
114
when 'likes' then user.likes
···
121
items = collection
122
.joins(:post)
123
.includes(:post => :user)
124
+
.matching_terms(terms)
125
.reverse_chronologically
126
.after_cursor(params[:cursor])
127
.limit(PAGE_LIMIT)