Skip to content

Commit 14a3d99

Browse files
fix: flatten server data in installed scripts API responses
- Transform Prisma nested server objects to flattened fields expected by frontend - Update getAllInstalledScripts, getInstalledScriptsByServer, and getInstalledScriptById - Server names should now display correctly in the installed scripts table - Use nullish coalescing operators for better null handling
1 parent 123dabe commit 14a3d99

File tree

1 file changed

+50
-3
lines changed

1 file changed

+50
-3
lines changed

src/server/api/routers/installedScripts.ts

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,25 @@ export const installedScriptsRouter = createTRPCRouter({
1111
try {
1212
const db = getDatabase();
1313
const scripts = await db.getAllInstalledScripts();
14+
15+
// Transform scripts to flatten server data for frontend compatibility
16+
const transformedScripts = scripts.map(script => ({
17+
...script,
18+
server_name: script.server?.name ?? null,
19+
server_ip: script.server?.ip ?? null,
20+
server_user: script.server?.user ?? null,
21+
server_password: script.server?.password ?? null,
22+
server_auth_type: script.server?.auth_type ?? null,
23+
server_ssh_key: script.server?.ssh_key ?? null,
24+
server_ssh_key_passphrase: script.server?.ssh_key_passphrase ?? null,
25+
server_ssh_port: script.server?.ssh_port ?? null,
26+
server_color: script.server?.color ?? null,
27+
server: undefined // Remove nested server object
28+
}));
29+
1430
return {
1531
success: true,
16-
scripts
32+
scripts: transformedScripts
1733
};
1834
} catch (error) {
1935
console.error('Error in getAllInstalledScripts:', error);
@@ -32,9 +48,25 @@ export const installedScriptsRouter = createTRPCRouter({
3248
try {
3349
const db = getDatabase();
3450
const scripts = await db.getInstalledScriptsByServer(input.serverId);
51+
52+
// Transform scripts to flatten server data for frontend compatibility
53+
const transformedScripts = scripts.map(script => ({
54+
...script,
55+
server_name: script.server?.name ?? null,
56+
server_ip: script.server?.ip ?? null,
57+
server_user: script.server?.user ?? null,
58+
server_password: script.server?.password ?? null,
59+
server_auth_type: script.server?.auth_type ?? null,
60+
server_ssh_key: script.server?.ssh_key ?? null,
61+
server_ssh_key_passphrase: script.server?.ssh_key_passphrase ?? null,
62+
server_ssh_port: script.server?.ssh_port ?? null,
63+
server_color: script.server?.color ?? null,
64+
server: undefined // Remove nested server object
65+
}));
66+
3567
return {
3668
success: true,
37-
scripts
69+
scripts: transformedScripts
3870
};
3971
} catch (error) {
4072
console.error('Error in getInstalledScriptsByServer:', error);
@@ -60,9 +92,24 @@ export const installedScriptsRouter = createTRPCRouter({
6092
script: null
6193
};
6294
}
95+
// Transform script to flatten server data for frontend compatibility
96+
const transformedScript = {
97+
...script,
98+
server_name: script.server?.name ?? null,
99+
server_ip: script.server?.ip ?? null,
100+
server_user: script.server?.user ?? null,
101+
server_password: script.server?.password ?? null,
102+
server_auth_type: script.server?.auth_type ?? null,
103+
server_ssh_key: script.server?.ssh_key ?? null,
104+
server_ssh_key_passphrase: script.server?.ssh_key_passphrase ?? null,
105+
server_ssh_port: script.server?.ssh_port ?? null,
106+
server_color: script.server?.color ?? null,
107+
server: undefined // Remove nested server object
108+
};
109+
63110
return {
64111
success: true,
65-
script
112+
script: transformedScript
66113
};
67114
} catch (error) {
68115
console.error('Error in getInstalledScriptById:', error);

0 commit comments

Comments
 (0)