Skip to content

Commit 9f443c3

Browse files
committed
Fix ACARS, add contact me, fix some AI slop, remove a lot of un needed comments
1 parent 5785a0a commit 9f443c3

22 files changed

Lines changed: 894 additions & 291 deletions

File tree

File renamed without changes.
31.8 KB
Binary file not shown.

server/db/flights.js

Lines changed: 53 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1-
import { generateSID, generateSquawk, getWakeTurbulence, generateRandomId } from '../utils/flightUtils.js';
1+
import {
2+
generateSID,
3+
generateSquawk,
4+
getWakeTurbulence,
5+
generateRandomId,
6+
} from '../utils/flightUtils.js';
27
import { getSessionById } from './sessions.js';
38
import flightsPool from './connections/flightsConnection.js';
9+
import crypto from 'crypto';
410

511
function sanitizeFlightForClient(flight) {
612
const { user_id, ip_address, ...sanitizedFlight } = flight;
@@ -17,35 +23,45 @@ export async function getFlightsBySession(sessionId) {
1723
`SELECT * FROM ${tableName} ORDER BY created_at ASC`
1824
);
1925

20-
const flights = result.rows.map(flight => sanitizeFlightForClient(flight));
26+
const flights = result.rows.map((flight) =>
27+
sanitizeFlightForClient(flight)
28+
);
2129
return flights;
2230
}
2331

2432
export async function getFlightsBySessionWithTime(sessionId, hoursBack = 2) {
2533
try {
2634
const tableName = `flights_${sessionId}`;
2735

28-
const tableExists = await flightsPool.query(`
36+
const tableExists = await flightsPool.query(
37+
`
2938
SELECT EXISTS (
3039
SELECT FROM information_schema.tables
3140
WHERE table_name = $1
3241
)
33-
`, [tableName]);
42+
`,
43+
[tableName]
44+
);
3445

3546
if (!tableExists.rows[0].exists) {
3647
return [];
3748
}
3849

3950
const result = await flightsPool.query(
4051
`SELECT * FROM ${tableName}
41-
WHERE created_at >= NOW() - INTERVAL '${hoursBack} hours'
42-
ORDER BY created_at ASC`
52+
WHERE created_at >= NOW() - INTERVAL '${hoursBack} hours'
53+
ORDER BY created_at ASC`
4354
);
4455

45-
const flights = result.rows.map(flight => sanitizeFlightForClient(flight));
56+
const flights = result.rows.map((flight) =>
57+
sanitizeFlightForClient(flight)
58+
);
4659
return flights;
4760
} catch (error) {
48-
console.error(`Error fetching flights for session ${sessionId}:`, error);
61+
console.error(
62+
`Error fetching flights for session ${sessionId}:`,
63+
error
64+
);
4965
return [];
5066
}
5167
}
@@ -68,21 +84,27 @@ function validateFlightFields(updates) {
6884
if (updates.cruisingFL !== undefined) {
6985
const fl = parseInt(updates.cruisingFL, 10);
7086
if (isNaN(fl) || fl < 0 || fl > 200 || fl % 5 !== 0) {
71-
throw new Error('Cruising FL must be between 0 and 200 in 50-step increments');
87+
throw new Error(
88+
'Cruising FL must be between 0 and 200 in 50-step increments'
89+
);
7290
}
7391
}
7492
if (updates.clearedFL !== undefined) {
7593
const fl = parseInt(updates.clearedFL, 10);
7694
if (isNaN(fl) || fl < 0 || fl > 200 || fl % 5 !== 0) {
77-
throw new Error('Cleared FL must be between 0 and 200 in 50-step increments');
95+
throw new Error(
96+
'Cleared FL must be between 0 and 200 in 50-step increments'
97+
);
7898
}
7999
}
80100
}
81101

82102
export async function addFlight(sessionId, flightData) {
83103
const tableName = `flights_${sessionId}`;
84104
try {
85-
await flightsPool.query(`ALTER TABLE ${tableName} ADD COLUMN IF NOT EXISTS gate VARCHAR(8);`);
105+
await flightsPool.query(
106+
`ALTER TABLE ${tableName} ADD COLUMN IF NOT EXISTS gate VARCHAR(8);`
107+
);
86108
} catch (error) {
87109
// Column might already exist, continue
88110
}
@@ -98,6 +120,7 @@ export async function addFlight(sessionId, flightData) {
98120
if (!flightData.timestamp) {
99121
flightData.timestamp = new Date().toISOString();
100122
}
123+
flightData.acars_token = crypto.randomBytes(4).toString('hex');
101124

102125
if (flightData.aircraft_type) {
103126
flightData.aircraft = flightData.aircraft_type;
@@ -113,7 +136,10 @@ export async function addFlight(sessionId, flightData) {
113136
flightData.runway = session.active_runway;
114137
}
115138
} catch (error) {
116-
console.error('Error fetching session for runway assignment:', error);
139+
console.error(
140+
'Error fetching session for runway assignment:',
141+
error
142+
);
117143
}
118144
}
119145

@@ -154,13 +180,21 @@ export async function updateFlight(sessionId, flightId, updates) {
154180
const tableName = `flights_${sessionId}`;
155181

156182
// add this block to create missing text columns safely
157-
const safeCols = Object.keys(updates).filter(k => /^[a-zA-Z0-9_]+$/.test(k));
183+
const safeCols = Object.keys(updates).filter((k) =>
184+
/^[a-zA-Z0-9_]+$/.test(k)
185+
);
158186
for (const col of safeCols) {
159187
try {
160-
await flightsPool.query(`ALTER TABLE ${tableName} ADD COLUMN IF NOT EXISTS "${col}" text;`);
188+
await flightsPool.query(
189+
`ALTER TABLE ${tableName} ADD COLUMN IF NOT EXISTS "${col}" text;`
190+
);
161191
} catch (err) {
162192
// ignore - column creation failure shouldn't stop update
163-
console.error('Could not ensure column exists:', col, err?.message || err);
193+
console.error(
194+
'Could not ensure column exists:',
195+
col,
196+
err?.message || err
197+
);
164198
}
165199
}
166200

@@ -204,5 +238,7 @@ export async function updateFlight(sessionId, flightId, updates) {
204238

205239
export async function deleteFlight(sessionId, flightId) {
206240
const tableName = `flights_${sessionId}`;
207-
await flightsPool.query(`DELETE FROM ${tableName} WHERE id = $1`, [flightId]);
208-
}
241+
await flightsPool.query(`DELETE FROM ${tableName} WHERE id = $1`, [
242+
flightId,
243+
]);
244+
}

0 commit comments

Comments
 (0)