mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-23 02:11:12 -05:00
Fix: Normalize status in edge function
This commit is contained in:
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user