forked from chicago-tool-library/circulate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathseeds.rb
73 lines (63 loc) · 3.57 KB
/
seeds.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
#
# Examples:
#
# movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
# Character.create(name: 'Luke', movie: movies.first)
def create_category(name, kids: nil, parent_id: nil)
category = Category.create!(name: name, parent_id: parent_id)
return if kids.nil?
case kids
when String
create_category(kids, parent_id: category.id)
when Array
kids.each do |kid|
create_category(kid, parent_id: category.id)
end
when Hash
create_category(kids.keys.first, kids: kids.values.first, parent_id: category.id)
else
raise "kids was not a String, Array, or Hash"
end
end
YAML.load_file("db/categories.yaml").each do |name, kids|
create_category(name, kids: kids)
end
admin_member = Member.create!(
email: "[email protected]", full_name: "Admin Member", preferred_name: "Admin",
phone_number: "3124567890", pronouns: ["she/her"], id_kind: 0, address_verified: false, desires: "saws, hammers",
address1: "123 S. Streetname St.", address2: "Apt. 4", city: "Chicago", region: "IL", postal_code: "60666",
reminders_via_email: true, reminders_via_text: true, receive_newsletter: true, volunteer_interest: true
)
User.create!(email: admin_member.email, password: "password", member: admin_member, role: "admin")
BorrowPolicy.create!(code: "B", name: "Default", fine: Money.new(100), fine_period: 1, duration: 7)
BorrowPolicy.create!(code: "C", name: "One Renewal", fine: Money.new(100), fine_period: 1, duration: 7, renewal_limit: 1)
Document.create!(name: "Agreement", code: "agreement", summary: "Member Waiver of Indemnification")
Document.create!(name: "Borrow Policy", code: "borrow_policy", summary: "Covers the rules of borrowing. Shown on the first page of member signup.")
Document.create!(name: "Chicago Tool Library Code of Conduct", code: "code_of_conduct", summary: "Defines acceptable behavior for CTL")
verified_member = Member.create!(
email: "[email protected]", full_name: "Firstname Lastname", preferred_name: "Verified", status: 1,
phone_number: "3124567890", pronouns: ["she/her"], id_kind: 0, address_verified: true, desires: "saws, hammers",
address1: "123 S. Streetname St.", address2: "Apt. 4", city: "Chicago", region: "IL", postal_code: "60666",
reminders_via_email: true, reminders_via_text: true, receive_newsletter: true, volunteer_interest: true
)
User.create!(email: verified_member.email, password: "password", member: verified_member)
verified_member.memberships.create!(started_on: Time.current)
unverified_member = Member.create!(
email: "[email protected]", full_name: "Firstname Lastname", preferred_name: "New",
phone_number: "3124567890", pronouns: ["she/her"], id_kind: 0, address_verified: false, desires: "saws, hammers",
address1: "123 S. Streetname St.", address2: "Apt. 4", city: "Chicago", region: "IL", postal_code: "60666",
reminders_via_email: true, reminders_via_text: true, receive_newsletter: true, volunteer_interest: true
)
User.create!(email: unverified_member.email, password: "password", member: unverified_member)
Item.create!( name: "Hammer", status: Item.statuses[:active], borrow_policy: BorrowPolicy.first )
Item.create!( name: "Cordless Drill", status: Item.statuses[:active], borrow_policy: BorrowPolicy.last )
Item.all.each do |item|
Loan.create!(
item: item,
member: verified_member,
due_at: 2.days.from_now,
uniquely_numbered: true
)
end