Farmbot-Web-App/db/seeds.rb

121 lines
4.9 KiB
Ruby

if Rails.env == "development"
POINT_COUNT = 8
PLANT_COUNT = 8
DATE_RANGE_LO = 1..3
DATE_RANGE_HI = 3..8
ENV['MQTT_HOST'] = "blooper.io"
ENV['OS_UPDATE_SERVER'] = "http://non_legacy_update_url.com"
# CREDIT: Faker Ruby Gem
VEGGIES = %w(artichoke arugula asparagus broccoli
cabbage carrot cauliflower celery chive cucumber
eggplant endive garlic jicama kale kohlrabi leek lettuce okra onion
parsnip pepper potato pumpkin radicchio radish raspberry rhubarb spinach
squash tomato turnip zucchini)
[
Sensor,
Peripheral,
Log,
PinBinding,
Point,
Point,
TokenIssuance,
ToolSlot,
User,
PlantTemplate,
SavedGarden,
SensorReading,
FarmwareInstallation,
Device,
Tool,
Delayed::Job,
Delayed::Backend::ActiveRecord::Job,
].map(&:delete_all)
Users::Create.run!(name: "Test",
email: "test@test.com",
password: "password123",
password_confirmation: "password123",
confirmed_at: Time.now,
agreed_to_terms_at: Time.now)
User.all.update_all(confirmed_at: Time.now,
agreed_to_terms_at: Time.now)
u = User.last
u.update_attributes(device: Devices::Create.run!(user: u))
# === Parameterized Sequence stuff
json = JSON.parse(File.read("spec/lib/celery_script/ast_fixture5.json")).deep_symbolize_keys
Sequences::Create.run!(json, device: u.device)
# === Parameterized Sequence stuff
Log.transaction do
FactoryBot.create_list(:log, 35, device: u.device)
end
[ "https://via.placeholder.com/350x250?text=Image%20Zero",
"https://i.imgur.com/XvFBGA4.jpg",
"https://via.placeholder.com/350x250?text=Image%20Two",
"https://i.imgur.com/XsFczCY.jpg",
"https://via.placeholder.com/350x250?text=Image%20Four"
].each do |url|
Images::Create.run!(attachment_url: url,
device: u.device,
meta: {x: rand(40...970),
y: rand(40...470),
z: rand(1...300)})
end
PLANT_COUNT.times do
veggie = VEGGIES.sample
Plant.create(device: u.device,
x: rand(40...970),
y: rand(40...470),
radius: rand(10...50),
name: veggie,
openfarm_slug: veggie.downcase.gsub(" ", "-"))
end
Device.all.map { |device| SavedGardens::Snapshot.run!(device: device) }
POINT_COUNT.times do
GenericPointer.create(device: u.device,
x: rand(40...970) + rand(40...970),
y: rand(40...470) + rand(40...470),
z: 5,
radius: (rand(1...150) + rand(1...150)) / 20,
meta: {
created_by: "plant-detection",
color: (Sequence::COLORS + [nil]).sample
})
end
s = Sequences::Create.run!(device: u.device,
name: "Goto 0, 0, 0",
body: [{kind:"move_absolute",args:{location:{kind:"coordinate", args:{x:0,
y:0, z:0}}, offset:{kind:"coordinate", args:{x:0, y:0, z:0}}, speed:100}}])
t = Tools::Create.run!(name: "Trench Digging Tool", device: u.device)
body_txt = File.read("spec/lib/celery_script/ast_fixture4.json")
.gsub("__SEQUENCE_ID__", s[:id].to_s)
.gsub("__TOOL_ID__", t.id.to_s)
Sequences::Create.run!(device: u.device,
name: "Every Node",
body: JSON.parse(body_txt))
Regimens::Create.run(device: u.device,
name:"Test Regimen 456",
color:"gray",
regimen_items: [
{time_offset:300000, sequence_id:s[:id]},
{time_offset:173100000, sequence_id:s[:id]},
{time_offset:345900000, sequence_id:s[:id]}
])
Peripherals::Create.run!(device: u.device, pin: 13, label: "LED")
WebcamFeeds::Create.run!(device: u.device,
name: "My Feed 1",
url: "https://nature.nps.gov/air/webcams/parks/yosecam/yose.jpg")
ts = Points::Create.run!(device: u.device,
tool_id: t.id,
name: "Slot One.",
x: 10,
y: 10,
z: 10,
pointer_type: "ToolSlot")
d = u.device
Sensors::Create
.run!(device: d, pin: 14, label: "Stub sensor", mode: 0)
end