Skip to content

Commit aeb47c8

Browse files
committed
feat: bruno collection
1 parent 003d58c commit aeb47c8

File tree

8 files changed

+330
-1
lines changed

8 files changed

+330
-1
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,5 @@ next-env.d.ts
4545

4646
certificates
4747
.env*.local
48+
49+
*.csv

eloop-bruno/eloop-bruno.json

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
{
2+
"name": "eloop",
3+
"version": "1",
4+
"items": [
5+
{
6+
"type": "http",
7+
"name": "users",
8+
"filename": "export_users.bru",
9+
"seq": 2,
10+
"settings": {
11+
"encodeUrl": true,
12+
"timeout": 0
13+
},
14+
"tags": [],
15+
"request": {
16+
"url": "{{process.env.NEXTAUTH_URL}}/api/admin/export/table?table=users&key={{process.env.CSV_EXPORT_KEY}}",
17+
"method": "GET",
18+
"headers": [],
19+
"params": [
20+
{
21+
"name": "table",
22+
"value": "users",
23+
"type": "query",
24+
"enabled": true
25+
},
26+
{
27+
"name": "key",
28+
"value": "{{process.env.CSV_EXPORT_KEY}}",
29+
"type": "query",
30+
"enabled": true
31+
}
32+
],
33+
"body": {
34+
"mode": "none",
35+
"formUrlEncoded": [],
36+
"multipartForm": [],
37+
"file": []
38+
},
39+
"script": {},
40+
"vars": {},
41+
"assertions": [],
42+
"tests": "",
43+
"docs": "",
44+
"auth": {
45+
"mode": "inherit"
46+
}
47+
}
48+
},
49+
{
50+
"type": "http",
51+
"name": "registrations",
52+
"filename": "export_registrations.bru",
53+
"seq": 4,
54+
"settings": {
55+
"encodeUrl": true,
56+
"timeout": 0
57+
},
58+
"tags": [],
59+
"request": {
60+
"url": "{{process.env.NEXTAUTH_URL}}/api/admin/export/table?table=registrations&key={{process.env.CSV_EXPORT_KEY}}",
61+
"method": "GET",
62+
"headers": [],
63+
"params": [
64+
{
65+
"name": "table",
66+
"value": "registrations",
67+
"type": "query",
68+
"enabled": true
69+
},
70+
{
71+
"name": "key",
72+
"value": "{{process.env.CSV_EXPORT_KEY}}",
73+
"type": "query",
74+
"enabled": true
75+
}
76+
],
77+
"body": {
78+
"mode": "none",
79+
"formUrlEncoded": [],
80+
"multipartForm": [],
81+
"file": []
82+
},
83+
"script": {},
84+
"vars": {},
85+
"assertions": [],
86+
"tests": "",
87+
"docs": "",
88+
"auth": {
89+
"mode": "inherit"
90+
}
91+
}
92+
},
93+
{
94+
"type": "http",
95+
"name": "scan_logs",
96+
"filename": "export_scan_logs.bru",
97+
"seq": 3,
98+
"settings": {
99+
"encodeUrl": true,
100+
"timeout": 0
101+
},
102+
"tags": [],
103+
"request": {
104+
"url": "{{process.env.NEXTAUTH_URL}}/api/admin/export/table?table=scan_logs&key={{process.env.CSV_EXPORT_KEY}}",
105+
"method": "GET",
106+
"headers": [],
107+
"params": [
108+
{
109+
"name": "table",
110+
"value": "scan_logs",
111+
"type": "query",
112+
"enabled": true
113+
},
114+
{
115+
"name": "key",
116+
"value": "{{process.env.CSV_EXPORT_KEY}}",
117+
"type": "query",
118+
"enabled": true
119+
}
120+
],
121+
"body": {
122+
"mode": "none",
123+
"formUrlEncoded": [],
124+
"multipartForm": [],
125+
"file": []
126+
},
127+
"script": {},
128+
"vars": {},
129+
"assertions": [],
130+
"tests": "",
131+
"docs": "",
132+
"auth": {
133+
"mode": "inherit"
134+
}
135+
}
136+
},
137+
{
138+
"type": "http",
139+
"name": "checkpoint",
140+
"filename": "export_checkpoint.bru",
141+
"seq": 5,
142+
"settings": {
143+
"encodeUrl": true,
144+
"timeout": 0
145+
},
146+
"tags": [],
147+
"request": {
148+
"url": "{{process.env.NEXTAUTH_URL}}/api/admin/export/checkpoint?event_id={{process.env.EVENT_ID}}&key={{process.env.CSV_EXPORT_KEY}}",
149+
"method": "GET",
150+
"headers": [],
151+
"params": [
152+
{
153+
"name": "event_id",
154+
"value": "{{process.env.EVENT_ID}}",
155+
"type": "query",
156+
"enabled": true
157+
},
158+
{
159+
"name": "key",
160+
"value": "{{process.env.CSV_EXPORT_KEY}}",
161+
"type": "query",
162+
"enabled": true
163+
}
164+
],
165+
"body": {
166+
"mode": "none",
167+
"formUrlEncoded": [],
168+
"multipartForm": [],
169+
"file": []
170+
},
171+
"script": {},
172+
"vars": {},
173+
"assertions": [],
174+
"tests": "",
175+
"docs": "",
176+
"auth": {
177+
"mode": "inherit"
178+
}
179+
}
180+
},
181+
{
182+
"type": "folder",
183+
"name": "exports",
184+
"filename": "exports",
185+
"seq": 6,
186+
"root": {
187+
"meta": {
188+
"name": "exports",
189+
"seq": 6
190+
}
191+
}
192+
}
193+
],
194+
"activeEnvironmentUid": "teaxSwGdLOq4UjUC9BLuQ",
195+
"environments": [],
196+
"brunoConfig": {
197+
"version": "1",
198+
"name": "eloop",
199+
"type": "collection",
200+
"ignore": [
201+
"node_modules",
202+
".git"
203+
],
204+
"size": 0.001049041748046875,
205+
"filesCount": 5
206+
}
207+
}

eloop-bruno/export_checkpoint.bru

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
meta {
2+
name: checkpoint
3+
type: http
4+
seq: 5
5+
}
6+
7+
get {
8+
url: {{process.env.NEXTAUTH_URL}}/api/admin/export/checkpoint?event_id={{process.env.EVENT_ID}}&key={{process.env.CSV_EXPORT_KEY}}
9+
body: none
10+
auth: inherit
11+
}
12+
13+
params:query {
14+
event_id: {{process.env.EVENT_ID}}
15+
key: {{process.env.CSV_EXPORT_KEY}}
16+
}
17+
18+
settings {
19+
encodeUrl: true
20+
timeout: 0
21+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
meta {
2+
name: registrations
3+
type: http
4+
seq: 4
5+
}
6+
7+
get {
8+
url: {{process.env.NEXTAUTH_URL}}/api/admin/export/table?table=registrations&key={{process.env.CSV_EXPORT_KEY}}
9+
body: none
10+
auth: inherit
11+
}
12+
13+
params:query {
14+
table: registrations
15+
key: {{process.env.CSV_EXPORT_KEY}}
16+
}
17+
18+
settings {
19+
encodeUrl: true
20+
timeout: 0
21+
}

eloop-bruno/export_scan_logs.bru

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
meta {
2+
name: scan_logs
3+
type: http
4+
seq: 3
5+
}
6+
7+
get {
8+
url: {{process.env.NEXTAUTH_URL}}/api/admin/export/table?table=scan_logs&key={{process.env.CSV_EXPORT_KEY}}
9+
body: none
10+
auth: inherit
11+
}
12+
13+
params:query {
14+
table: scan_logs
15+
key: {{process.env.CSV_EXPORT_KEY}}
16+
}
17+
18+
settings {
19+
encodeUrl: true
20+
timeout: 0
21+
}

eloop-bruno/export_users.bru

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
meta {
2+
name: users
3+
type: http
4+
seq: 2
5+
}
6+
7+
get {
8+
url: {{process.env.NEXTAUTH_URL}}/api/admin/export/table?table=users&key={{process.env.CSV_EXPORT_KEY}}
9+
body: none
10+
auth: inherit
11+
}
12+
13+
params:query {
14+
table: users
15+
key: {{process.env.CSV_EXPORT_KEY}}
16+
}
17+
18+
settings {
19+
encodeUrl: true
20+
timeout: 0
21+
}

eloop-bruno/run_exports.sh

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
# Load env file if present
5+
if [ -f .env ]; then
6+
# shellcheck disable=SC1091
7+
source .env
8+
fi
9+
10+
DEST_DIR="./exports"
11+
mkdir -p "$DEST_DIR"
12+
13+
download() {
14+
local file="$1"
15+
local out="$2"
16+
echo "Running $file -> $out"
17+
curl -sS "${NEXTAUTH_URL}/api/admin/export/table?${file}" -o "$out" || true
18+
}
19+
20+
echo "Exporting users..."
21+
curl -sS "${NEXTAUTH_URL}/api/admin/export/table?table=users&key=${CSV_EXPORT_KEY}" -o "$DEST_DIR/users.csv"
22+
23+
echo "Exporting registrations..."
24+
curl -sS "${NEXTAUTH_URL}/api/admin/export/table?table=registrations&key=${CSV_EXPORT_KEY}" -o "$DEST_DIR/registrations.csv"
25+
26+
echo "Exporting scan_logs..."
27+
curl -sS "${NEXTAUTH_URL}/api/admin/export/table?table=scan_logs&key=${CSV_EXPORT_KEY}" -o "$DEST_DIR/scan_logs.csv"
28+
29+
if [ -n "${EVENT_ID:-}" ]; then
30+
echo "Exporting checkpoint for event ${EVENT_ID}..."
31+
curl -sS "${NEXTAUTH_URL}/api/admin/export/checkpoint?event_id=${EVENT_ID}&key=${CSV_EXPORT_KEY}" -o "$DEST_DIR/checkpoint.csv"
32+
else
33+
echo "EVENT_ID not set; skipping checkpoint export"
34+
fi
35+
36+
echo "Exports saved to $DEST_DIR"

scripts/eloopToGoogleSheet.gs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const SHEET_NAME = props.getProperty('SHEET_NAME');
99
function importCSVFromEloop() {
1010
try {
1111
// Build the URL dynamically
12-
const csvUrl = `${NEXTAUTH_URL}/api/events/${EVENT_ID}/export/key?key=${CSV_EXPORT_KEY}`;
12+
const csvUrl = `${NEXTAUTH_URL}/api/admin/export/checkpoint?event_id=${EVENT_ID}&key=${CSV_EXPORT_KEY}`;
1313

1414
// Fetch CSV content
1515
const csvContent = UrlFetchApp.fetch(csvUrl).getContentText();

0 commit comments

Comments
 (0)