server: allow empty fields

This commit is contained in:
King Kévin 2023-01-30 01:04:50 +01:00
parent 47292d659f
commit a013e0fc22
1 changed files with 11 additions and 9 deletions

View File

@ -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) = ?")