server: provide search terms as param

This commit is contained in:
King Kévin 2023-01-30 04:51:15 +01:00
parent 96b07af7ac
commit ee36c245fc
2 changed files with 26 additions and 6 deletions

View File

@ -23,7 +23,7 @@ function search()
return;
}
last_search = '/search/' + terms.value;
last_search = '/search?terms=' + terms.value;
let xhr = new XMLHttpRequest();
xhr.open('GET', last_search, true);
xhr.onload = function() {

View File

@ -174,11 +174,15 @@ get '/part/:name' do
part.to_json
end
get '/search/:terms' do
terms = params['terms'].split(" ")
terms.keep_if {|term| term.length >= 3}
halt 400 if terms.empty?
# search in names, description, and category
get '/part?' do
halt 404, "name required" unless params['name']
part = get_part_by_name(params['name'])
halt 404 unless part
part.to_json
end
# search in names, description, and category
def search(terms)
statements = []
statements << @db.prepare("SELECT id FROM part WHERE name LIKE ?")
statements << @db.prepare("SELECT id FROM part WHERE mpn LIKE ?")
@ -211,6 +215,22 @@ get '/search/:terms' do
parts.compact!
parts = parts[0, PARTS_LIMIT]
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
end