server: provide search terms as param
This commit is contained in:
parent
96b07af7ac
commit
ee36c245fc
|
@ -23,7 +23,7 @@ function search()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
last_search = '/search/' + terms.value;
|
last_search = '/search?terms=' + terms.value;
|
||||||
let xhr = new XMLHttpRequest();
|
let xhr = new XMLHttpRequest();
|
||||||
xhr.open('GET', last_search, true);
|
xhr.open('GET', last_search, true);
|
||||||
xhr.onload = function() {
|
xhr.onload = function() {
|
||||||
|
|
30
server.rb
30
server.rb
|
@ -174,11 +174,15 @@ get '/part/:name' do
|
||||||
part.to_json
|
part.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
get '/search/:terms' do
|
get '/part?' do
|
||||||
terms = params['terms'].split(" ")
|
halt 404, "name required" unless params['name']
|
||||||
terms.keep_if {|term| term.length >= 3}
|
part = get_part_by_name(params['name'])
|
||||||
halt 400 if terms.empty?
|
halt 404 unless part
|
||||||
# search in names, description, and category
|
part.to_json
|
||||||
|
end
|
||||||
|
|
||||||
|
# search in names, description, and category
|
||||||
|
def search(terms)
|
||||||
statements = []
|
statements = []
|
||||||
statements << @db.prepare("SELECT id FROM part WHERE name LIKE ?")
|
statements << @db.prepare("SELECT id FROM part WHERE name LIKE ?")
|
||||||
statements << @db.prepare("SELECT id FROM part WHERE mpn LIKE ?")
|
statements << @db.prepare("SELECT id FROM part WHERE mpn LIKE ?")
|
||||||
|
@ -211,6 +215,22 @@ get '/search/:terms' do
|
||||||
parts.compact!
|
parts.compact!
|
||||||
parts = parts[0, PARTS_LIMIT]
|
parts = parts[0, PARTS_LIMIT]
|
||||||
parts.sort! {|x,y| x["name"] <=> y["name"]}
|
parts.sort! {|x,y| x["name"] <=> y["name"]}
|
||||||
|
end
|
||||||
|
|
||||||
|
get '/search/:terms' do
|
||||||
|
terms = params['terms'].split(" ")
|
||||||
|
terms.keep_if {|term| term.length >= 3}
|
||||||
|
halt 400 if terms.empty?
|
||||||
|
parts = search(terms)
|
||||||
|
parts.to_json
|
||||||
|
end
|
||||||
|
|
||||||
|
get '/search?' do
|
||||||
|
halt 400, "terms needed" unless params['terms']
|
||||||
|
terms = params['terms'].split(" ")
|
||||||
|
terms.keep_if {|term| term.length >= 3}
|
||||||
|
halt 400 if terms.empty?
|
||||||
|
parts = search(terms)
|
||||||
parts.to_json
|
parts.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue