diff --git a/server.rb b/server.rb index 0190442..26428d2 100755 --- a/server.rb +++ b/server.rb @@ -230,23 +230,16 @@ get '/delete/:id' do return 200 end -post '/part' do - request.body.rewind - begin - part = JSON.parse(request.body.read) - rescue - halt 401, "not json" - end - puts part if DEBUG +def add_part(part) if part["id"] then # ensure part to update exists statement = @db.prepare("SELECT id FROM part WHERE id = ?") - halt(401, "id not valid") if statement.execute(part["id"]).to_a.empty? + raise StandardError.new("id not valid") if statement.execute(part["id"]).to_a.empty? else # add new part - halt(401, "name required") unless part["name"] and part["name"].length > 0 + raise StandardError.new("name required") unless part["name"] and part["name"].length > 0 statement = @db.prepare("SELECT id FROM part WHERE name = ?") - halt(401, "name already existing") unless statement.execute(part["name"]).to_a.empty? + raise StandardError.new("name already existing") unless statement.execute(part["name"]).to_a.empty? insert = @db.prepare("INSERT INTO part (name) VALUES (?)"); insert.execute(part["name"]) part["id"] = statement.execute(part["name"]).to_a[0]["id"] @@ -258,7 +251,7 @@ post '/part' do if part[field] then statement = @db.prepare("SELECT id FROM part WHERE name = ?") family = statement.execute(part[field]).to_a - halt(401, "family not existing") if family.empty? + raise StandardError.new("family not existing") if family.empty? update = @db.prepare("UPDATE part SET #{field} = ? WHERE id = ?") update.execute(family[0]["id"], part["id"]) family = get_part_by_id(family[0]["id"]) @@ -328,7 +321,7 @@ post '/part' do next unless sku and !sku.empty? statement = @db.prepare("SELECT id FROM distributor WHERE LOWER(name) = ?") ref = statement.execute(distributor.downcase).to_a[0] - halt(401, "distributor unknown") unless ref + raise StandardError.new("distributor unknown") unless ref insert = @db.prepare("INSERT INTO distribution (distributor,part,sku) VALUES (?,?,?)"); insert.execute(ref["id"], part["id"], sku) end @@ -355,5 +348,20 @@ post '/part' do end end end +end + +post '/part' do + request.body.rewind + begin + part = JSON.parse(request.body.read) + rescue + halt 401, "not json" + end + puts part if DEBUG + begin + add_part(part) + rescue StandardError => e + halt 401, e.message + end return 200 end