From a013e0fc22a3e2348e0c267c4ded858910ea405b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Mon, 30 Jan 2023 01:04:50 +0100 Subject: [PATCH] server: allow empty fields --- server.rb | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/server.rb b/server.rb index accc13c..54cf8ab 100755 --- a/server.rb +++ b/server.rb @@ -250,20 +250,23 @@ def add_part(part) # update family family = nil field = "family" - part[field] = nil if part[field] and 0 == part[field].length if part[field] then - statement = @db.prepare("SELECT id FROM part WHERE name = ?") - family = statement.execute(part[field]).to_a - 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"]) + if part[field].empty? then + update = @db.prepare("UPDATE part SET #{field} = NULL WHERE id = ?") + update.execute(part["id"]) + else + statement = @db.prepare("SELECT id FROM part WHERE name = ?") + family = statement.execute(part[field]).to_a + 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"]) + end end # update fields fields_txt = ["name", "description", "details", "mpn", "package", "datasheet", "page"]; fields_txt.each do |field| next unless part[field] - part[field] = nil if part[field].kind_of?(String) and 0 == part[field].length next if family and family[field] == part[field] update = @db.prepare("UPDATE part SET #{field} = ? WHERE id = ?") update.execute(part[field], part["id"]) @@ -271,7 +274,6 @@ def add_part(part) # update manufacturer and package field_ref = ["manufacturer"] field_ref.each do |field| - part[field] = nil if part[field] and 0 == part[field].length next if family and family[field] == part[field] if part[field] then statement = @db.prepare("SELECT id FROM #{field} WHERE LOWER(name) = ?")