server: handle family in update
This commit is contained in:
parent
30b6fca261
commit
82f51bef62
34
server.rb
34
server.rb
|
@ -239,27 +239,28 @@ post '/part' do
|
||||||
# add new part
|
# add new part
|
||||||
halt(401, "name required") unless part["name"] and part["name"].length > 0
|
halt(401, "name required") unless part["name"] and part["name"].length > 0
|
||||||
statement = @db.prepare("SELECT id FROM part WHERE name = ?")
|
statement = @db.prepare("SELECT id FROM part WHERE name = ?")
|
||||||
halt(401, "name already existing") unless part = statement.execute(part["name"]).to_a.empty?
|
halt(401, "name already existing") unless statement.execute(part["name"]).to_a.empty?
|
||||||
insert = @db.prepare("INSERT INTO part (name) VALUES (?)");
|
insert = @db.prepare("INSERT INTO part (name) VALUES (?)");
|
||||||
insert.execute(part["name"])
|
insert.execute(part["name"])
|
||||||
part["id"] = statement.execute(part["name"]).to_a[0]["id"]
|
part["id"] = statement.execute(part["name"]).to_a[0]["id"]
|
||||||
end
|
end
|
||||||
# update fields
|
# update family
|
||||||
fields_txt = ["name", "description", "details", "package", "pincount", "family", "datasheet", "page"];
|
family = nil
|
||||||
fields_txt.each do |field|
|
field = "family"
|
||||||
halt(401, "#{field} missing") unless part[field]
|
part[field] = nil if part[field] and 0 == part[field].length
|
||||||
part[field] = nil if 0 == part[field].length
|
if part[field] then
|
||||||
update = @db.prepare("UPDATE part SET #{field} = ? WHERE id = ?")
|
statement = @db.prepare("SELECT id FROM part WHERE name = ?")
|
||||||
update.execute(part["id"], part[field])
|
family = statement.execute(part[field]).to_a
|
||||||
|
halt(401, "family not existing") if family.empty?
|
||||||
|
family = get_part_by_id(family[0]["id"])
|
||||||
end
|
end
|
||||||
fields_int = ["pincount"]
|
# update fields
|
||||||
fields_int.each do |field|
|
fields_txt = ["name", "description", "details", "package", "pincount", "family", "datasheet", "page", "pincount"];
|
||||||
halt(401, "#{field} missing") unless part[field]
|
fields_txt.each do |field|
|
||||||
if 0 == part[field].length then
|
next unless part[field]
|
||||||
part[field] = nil
|
part[field] = nil if part[field].kind_of?(String) and 0 == part[field].length
|
||||||
else
|
part[field] = part[field].to_i if part[field] and "pincount" == field
|
||||||
part[field] = part[field].to_i
|
next if family[field] == part[field]
|
||||||
end
|
|
||||||
update = @db.prepare("UPDATE part SET #{field} = ? WHERE id = ?")
|
update = @db.prepare("UPDATE part SET #{field} = ? WHERE id = ?")
|
||||||
update.execute(part["id"], part[field])
|
update.execute(part["id"], part[field])
|
||||||
end
|
end
|
||||||
|
@ -267,6 +268,7 @@ post '/part' do
|
||||||
field_ref = ["manufacturer", "package"]
|
field_ref = ["manufacturer", "package"]
|
||||||
field_ref.each do |field|
|
field_ref.each do |field|
|
||||||
part[field] = nil if part[field] and 0 == part[field].length
|
part[field] = nil if part[field] and 0 == part[field].length
|
||||||
|
next if family[field] == part[field]
|
||||||
if part[field] then
|
if part[field] then
|
||||||
statement = @db.prepare("SELECT id FROM #{field} WHERE LOWER(name) = ?")
|
statement = @db.prepare("SELECT id FROM #{field} WHERE LOWER(name) = ?")
|
||||||
ref = statement.execute(part[field].downcase).to_a[0]
|
ref = statement.execute(part[field].downcase).to_a[0]
|
||||||
|
|
Loading…
Reference in New Issue