From 961cfa351c9b08a4ef28c540b65a666b4d119b8b Mon Sep 17 00:00:00 2001 From: Cinder Date: Thu, 25 Jul 2024 12:13:20 -0700 Subject: [PATCH] [Seeding] Add pool seeding (#681) --- db/populate.rb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/db/populate.rb b/db/populate.rb index 9c06a9c6b..bb6571ce5 100644 --- a/db/populate.rb +++ b/db/populate.rb @@ -13,6 +13,7 @@ presets = { favorites: ENV.fetch("FAVORITES", 0).to_i, forums: ENV.fetch("FORUMS", 0).to_i, postvotes: ENV.fetch("POSTVOTES", 0).to_i, + pools: ENV.fetch("POOLS", 0).to_i, } if presets.values.sum == 0 puts "DEFAULTS" @@ -23,6 +24,7 @@ if presets.values.sum == 0 favorites: 100, forums: 100, postvotes: 100, + pools: 100, } end @@ -32,6 +34,7 @@ COMMENTS = presets[:comments] FAVORITES = presets[:favorites] FORUMS = presets[:forums] POSTVOTES = presets[:postvotes] +POOLS = presets[:pools] DISTRIBUTION = ENV.fetch("DISTRIBUTION", 10).to_i DEFAULT_PASSWORD = ENV.fetch("PASSWORD", "qwerty") @@ -276,6 +279,27 @@ def populate_post_votes(number, users: [], posts: []) end end +def populate_pools(number, posts: []) + return unless number > 0 + puts "* Generating pools" + + CurrentUser.user = User.find(1) + posts = Post.limit(number).order("random()") if posts.empty? + + pool_obj = Pool.create do |pool| + pool.name = Faker::Lorem.sentence + pool.category = "collection" + pool.post_ids = posts.pluck(:id) + end + puts pool_obj + + if pool_obj.errors.empty? + puts " pool ##{pool_obj.id}" + else + puts " error: #{pool_obj.errors.full_messages.join('; ')}" + end +end + puts "Populating the Database" CurrentUser.user = User.find(1) CurrentUser.ip_addr = "127.0.0.1" @@ -288,3 +312,4 @@ populate_comments(COMMENTS, users: users) populate_favorites(FAVORITES, users: users) populate_forums(FORUMS, users: users) populate_post_votes(POSTVOTES, users: users, posts: posts) +populate_pools(POOLS, posts: posts)