Fix: Normalize status in edge function

This commit is contained in:
gpt-engineer-app[bot]
2025-10-02 17:24:50 +00:00
parent 68ca57e712
commit 0793793d89

View File

@@ -250,6 +250,30 @@ function filterDatabaseFields(data: any, allowedFields: string[]): any {
return filtered;
}
function normalizeStatusValue(data: any): any {
if (data.status) {
// Map display values to database values
const statusMap: Record<string, string> = {
'Operating': 'operating',
'Seasonal': 'operating',
'Closed Temporarily': 'maintenance',
'Closed Permanently': 'closed',
'Under Construction': 'under_construction',
'Planned': 'under_construction',
'SBNO': 'sbno',
// Also handle already-lowercase values
'operating': 'operating',
'closed': 'closed',
'under_construction': 'under_construction',
'maintenance': 'maintenance',
'sbno': 'sbno'
};
data.status = statusMap[data.status] || 'operating';
}
return data;
}
async function createPark(supabase: any, data: any): Promise<string> {
// Transform images object if present
if (data.images) {
@@ -279,7 +303,8 @@ async function createPark(supabase: any, data: any): Promise<string> {
const parkId = data.park_id;
delete data.park_id; // Remove ID from update data
const sanitizedData = sanitizeDateFields(data);
const normalizedData = normalizeStatusValue(data);
const sanitizedData = sanitizeDateFields(normalizedData);
const filteredData = filterDatabaseFields(sanitizedData, PARK_FIELDS);
const { error } = await supabase
.from('parks')
@@ -290,7 +315,8 @@ async function createPark(supabase: any, data: any): Promise<string> {
return parkId;
} else {
console.log('Creating new park');
const sanitizedData = sanitizeDateFields(data);
const normalizedData = normalizeStatusValue(data);
const sanitizedData = sanitizeDateFields(normalizedData);
const filteredData = filterDatabaseFields(sanitizedData, PARK_FIELDS);
const { data: park, error } = await supabase
.from('parks')
@@ -332,7 +358,8 @@ async function createRide(supabase: any, data: any): Promise<string> {
const rideId = data.ride_id;
delete data.ride_id; // Remove ID from update data
const sanitizedData = sanitizeDateFields(data);
const normalizedData = normalizeStatusValue(data);
const sanitizedData = sanitizeDateFields(normalizedData);
const filteredData = filterDatabaseFields(sanitizedData, RIDE_FIELDS);
const { error } = await supabase
.from('rides')
@@ -356,7 +383,8 @@ async function createRide(supabase: any, data: any): Promise<string> {
return rideId;
} else {
console.log('Creating new ride');
const sanitizedData = sanitizeDateFields(data);
const normalizedData = normalizeStatusValue(data);
const sanitizedData = sanitizeDateFields(normalizedData);
const filteredData = filterDatabaseFields(sanitizedData, RIDE_FIELDS);
const { data: ride, error } = await supabase
.from('rides')