-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathseed.js
More file actions
106 lines (99 loc) · 5.02 KB
/
seed.js
File metadata and controls
106 lines (99 loc) · 5.02 KB
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
const BASE_URL = "http://localhost:3000";
const ENDPOINT = "/api/transactions";
const transactions = [
["TX001", "U001", 5000, "2026-02-23T10:00:00", "D1"],
["TX002", "U001", 7000, "2026-02-23T10:03:00", "D1"],
["TX003", "U001", 8000, "2026-02-23T10:05:00", "D1"],
["TX004", "U001", 6000, "2026-02-23T10:08:00", "D1"],
["TX005", "U002", 25000, "2026-02-23T10:10:00", "D2"],
["TX006", "U003", 15000, "2026-02-23T10:15:00", "D3"],
["TX007", "U003", 16000, "2026-02-23T10:18:00", "D3"],
["TX008", "U003", 17000, "2026-02-23T10:22:00", "D3"],
["TX009", "U004", 20000, "2026-02-23T10:25:00", "D4"],
["TX010", "U005", 30000, "2026-02-23T10:30:00", "D5"],
["TX011", "U006", 4000, "2026-02-23T10:35:00", "D6"],
["TX012", "U006", 5000, "2026-02-23T10:37:00", "D6"],
["TX013", "U006", 6000, "2026-02-23T10:39:00", "D6"],
["TX014", "U006", 7000, "2026-02-23T10:50:00", "D6"],
["TX015", "U007", 22000, "2026-02-23T11:00:00", "D7"],
["TX016", "U008", 12000, "2026-02-23T11:05:00", "D8"],
["TX017", "U008", 13000, "2026-02-23T11:07:00", "D8"],
["TX018", "U008", 14000, "2026-02-23T11:09:00", "D8"],
["TX019", "U008", 15000, "2026-02-23T11:11:00", "D8"],
["TX020", "U009", 9000, "2026-02-23T11:15:00", "D9"],
["TX021", "U010", 21000, "2026-02-23T11:20:00", "D10"],
["TX022", "U011", 11000, "2026-02-23T11:25:00", "D11"],
["TX023", "U012", 18000, "2026-02-23T11:30:00", "D12"],
["TX024", "U012", 19000, "2026-02-23T11:33:00", "D12"],
["TX025", "U012", 19500, "2026-02-23T11:36:00", "D12"],
["TX026", "U013", 50000, "2026-02-23T11:40:00", "D13"],
["TX027", "U014", 3000, "2026-02-23T11:45:00", "D14"],
["TX028", "U014", 4000, "2026-02-23T11:48:00", "D14"],
["TX029", "U014", 5000, "2026-02-23T11:51:00", "D14"],
["TX030", "U014", 6000, "2026-02-23T11:53:00", "D14"],
["TX031", "U015", 2000, "2026-02-23T12:00:00", "D15"],
["TX032", "U016", 25000, "2026-02-23T12:05:00", "D16"],
["TX033", "U017", 8000, "2026-02-23T12:10:00", "D17"],
["TX034", "U017", 8500, "2026-02-23T12:14:00", "D17"],
["TX035", "U017", 9000, "2026-02-23T12:18:00", "D17"],
["TX036", "U018", 10000, "2026-02-23T12:25:00", "D18"],
["TX037", "U019", 27000, "2026-02-23T12:30:00", "D19"],
["TX038", "U020", 6000, "2026-02-23T12:35:00", "D20"],
["TX039", "U020", 6500, "2026-02-23T12:38:00", "D20"],
["TX040", "U020", 7000, "2026-02-23T12:42:00", "D20"],
["TX041", "U021", 20000, "2026-02-23T12:45:00", "D21"],
["TX042", "U022", 31000, "2026-02-23T12:50:00", "D22"],
["TX043", "U023", 4500, "2026-02-23T12:55:00", "D23"],
["TX044", "U024", 12000, "2026-02-23T13:00:00", "D24"],
["TX045", "U024", 12500, "2026-02-23T13:03:00", "D24"],
["TX046", "U024", 13000, "2026-02-23T13:06:00", "D24"],
["TX047", "U024", 13500, "2026-02-23T13:09:00", "D24"],
["TX048", "U025", 22000, "2026-02-23T13:15:00", "D25"],
["TX049", "U026", 1000, "2026-02-23T13:20:00", "D26"],
["TX050", "U026", 1000, "2026-02-23T13:22:00", "D26"],
["TX051", "U026", 1000, "2026-02-23T13:24:00", "D26"],
["TX052", "U027", 90000, "2026-02-23T13:30:00", "D27"],
["TX053", "U028", 15000, "2026-02-23T13:35:00", "D28"],
["TX054", "U029", 17000, "2026-02-23T13:40:00", "D29"],
["TX055", "U030", 23000, "2026-02-23T13:45:00", "D30"],
["TX056", "U030", 24000, "2026-02-23T13:47:00", "D30"],
["TX057", "U030", 25000, "2026-02-23T13:49:00", "D30"],
["TX058", "U030", 26000, "2026-02-23T13:51:00", "D30"],
["TX010", "U005", 30000, "2026-02-23T10:30:00", "D5"], // Intended duplicate
["TX001", "U001", 5000, "2026-02-23T10:00:00", "D1"] // Intended duplicate
];
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
async function seed() {
for (const tx of transactions) {
const [transaction_id, user_id, amount, timestamp, device_id] = tx;
const payload = {
transaction_id,
user_id,
amount: Number(amount),
timestamp,
device_id
};
try {
const response = await fetch(`${BASE_URL}${ENDPOINT}`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
const status = response.status;
if (status === 201) {
const result = await response.json();
console.log(`TX: ${transaction_id} | Status: ${status} | Risk: ${result.risk_flag || 'None'}`);
} else if (status === 409) {
console.log(`TX: ${transaction_id} | Status: ${status} | Error: Duplicate transaction_id`);
} else {
const text = await response.text();
console.log(`TX: ${transaction_id} | Status: ${status} | Error: ${text}`);
}
} catch (error) {
console.log(`TX: ${transaction_id} | Error: ${error.message}`);
}
// 1 second delay so each transaction is clearly visible as it gets submitted
await sleep(1000);
}
}
seed();