port-nimara-client-portal/server/api/test-berth-connection.ts

64 lines
2.3 KiB
TypeScript

import { getBerths, getBerthById } from "../utils/nocodb";
import { requireAuth } from "../utils/auth";
export default defineEventHandler(async (event) => {
console.log('[test-berth-connection] Testing berth NocoDB connection...');
// Check authentication (x-tag header OR Keycloak session)
await requireAuth(event);
try {
// Test fetching all berths
console.log('[test-berth-connection] Testing getBerths()...');
const berthsResponse = await getBerths();
console.log('[test-berth-connection] Berths fetched successfully:', {
count: berthsResponse.list?.length || 0,
firstBerth: berthsResponse.list?.[0] ? {
id: berthsResponse.list[0].Id,
mooringNumber: berthsResponse.list[0]['Mooring Number'],
status: berthsResponse.list[0].Status,
area: berthsResponse.list[0].Area
} : null
});
let testBerth = null;
if (berthsResponse.list && berthsResponse.list.length > 0) {
const firstBerthId = berthsResponse.list[0].Id.toString();
console.log('[test-berth-connection] Testing getBerthById() with ID:', firstBerthId);
testBerth = await getBerthById(firstBerthId);
console.log('[test-berth-connection] Individual berth fetched successfully:', {
id: testBerth.Id,
mooringNumber: testBerth['Mooring Number'],
interestedPartiesCount: testBerth['Interested Parties']?.length || 0
});
}
return {
success: true,
message: "Berth NocoDB connection test successful",
data: {
totalBerths: berthsResponse.list?.length || 0,
testBerth: testBerth ? {
id: testBerth.Id,
mooringNumber: testBerth['Mooring Number'],
status: testBerth.Status,
area: testBerth.Area,
price: testBerth.Price,
interestedPartiesCount: testBerth['Interested Parties']?.length || 0
} : null,
tableId: "mczgos9hr3oa9qc"
}
};
} catch (error) {
console.error('[test-berth-connection] Error occurred:', error);
console.error('[test-berth-connection] Error details:', error instanceof Error ? error.message : 'Unknown error');
return {
success: false,
message: "Berth NocoDB connection test failed",
error: error instanceof Error ? error.message : 'Unknown error',
details: error
};
}
});