-
Notifications
You must be signed in to change notification settings - Fork 0
/
seed.ts
114 lines (109 loc) · 2.79 KB
/
seed.ts
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import { connection } from "./src/components/database/connection";
import * as crypto from "crypto";
import { createCampaignTable } from "./src/components/database/entities/campaign.entity";
import { createDonationsTable } from "./src/components/database/entities/donation.entity";
import { getCampaignByIdProcedure } from "./src/components/database/procedures/campaigns/get-campaign-by-id.procedure";
import { markDonatorAsFraudProcedure } from "./src/components/database/procedures/donations/mark-donator-as-fraud.procedure";
const dbQueries = [
createCampaignTable.sql,
createDonationsTable.sql,
getCampaignByIdProcedure.sql,
markDonatorAsFraudProcedure.sql,
];
const companies = [
{
id: crypto.randomUUID(),
name: "Comp1",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp2",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp3",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp4",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp5",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp6",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp7",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp8",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp9",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp10",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp11",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp12",
description: "description",
goal_amount: 12500,
},
{
id: crypto.randomUUID(),
name: "Comp13",
description: "description",
goal_amount: 12500,
},
];
const seed = async () => {
console.log("Setting up tables...");
await Promise.all(dbQueries.map((sql) => new Promise(resolve => connection.execute(sql, resolve))));
console.log("Done! Proceed to seeding...")
console.log("Start seeding...");
companies.forEach((entity) => {
const { id, name, description, goal_amount } = entity;
console.log(`Inserting entity with id ${id}`);
connection.query({
sql: `INSERT INTO Campaigns VALUES (?, ?, ?, ?, DEFAULT)`,
values: [id, name, description, goal_amount],
});
console.log(`Finished inserting entity\n`);
});
console.log("Seeding done!");
};
seed()