Migrate member fields to snake_case naming convention
All checks were successful
Build And Push Image / docker (push) Successful in 3m11s

Convert field names from space-separated format to snake_case across
member API endpoints and validation logic. Add migration guide for
reference.
This commit is contained in:
2025-08-07 21:50:02 +02:00
parent f096a22824
commit d36209818a
7 changed files with 290 additions and 103 deletions

View File

@@ -189,18 +189,18 @@ export const createMember = async (data: Partial<Member>): Promise<Member> => {
// Only include fields that are part of the member schema
const allowedFields = [
"First Name",
"Last Name",
"Email",
"Phone",
"Current Year Dues Paid",
"Nationality",
"Date of Birth",
"Membership Date Paid",
"Payment Due Date",
"Membership Status",
"Address",
"Member Since"
"first_name",
"last_name",
"email",
"phone",
"current_year_dues_paid",
"nationality",
"date_of_birth",
"membership_date_paid",
"payment_due_date",
"membership_status",
"address",
"member_since"
];
// Filter the data to only include allowed fields
@@ -218,14 +218,14 @@ export const createMember = async (data: Partial<Member>): Promise<Member> => {
delete cleanData.FormattedPhone;
// Fix date formatting for PostgreSQL
if (cleanData['Date of Birth']) {
cleanData['Date of Birth'] = convertDateFormat(cleanData['Date of Birth']);
if (cleanData['date_of_birth']) {
cleanData['date_of_birth'] = convertDateFormat(cleanData['date_of_birth']);
}
if (cleanData['Membership Date Paid']) {
cleanData['Membership Date Paid'] = convertDateFormat(cleanData['Membership Date Paid']);
if (cleanData['membership_date_paid']) {
cleanData['membership_date_paid'] = convertDateFormat(cleanData['membership_date_paid']);
}
if (cleanData['Payment Due Date']) {
cleanData['Payment Due Date'] = convertDateFormat(cleanData['Payment Due Date']);
if (cleanData['payment_due_date']) {
cleanData['payment_due_date'] = convertDateFormat(cleanData['payment_due_date']);
}
console.log('[nocodb.createMember] Clean data fields:', Object.keys(cleanData));
@@ -271,18 +271,18 @@ export const updateMember = async (id: string, data: Partial<Member>, retryCount
// Only include fields that are part of the member schema
const allowedFields = [
"First Name",
"Last Name",
"Email",
"Phone",
"Current Year Dues Paid",
"Nationality",
"Date of Birth",
"Membership Date Paid",
"Payment Due Date",
"Membership Status",
"Address",
"Member Since"
"first_name",
"last_name",
"email",
"phone",
"current_year_dues_paid",
"nationality",
"date_of_birth",
"membership_date_paid",
"payment_due_date",
"membership_status",
"address",
"member_since"
];
// Filter the data to only include allowed fields
@@ -301,14 +301,14 @@ export const updateMember = async (id: string, data: Partial<Member>, retryCount
}
// Fix date formatting for PostgreSQL
if (cleanData['Date of Birth']) {
cleanData['Date of Birth'] = convertDateFormat(cleanData['Date of Birth']);
if (cleanData['date_of_birth']) {
cleanData['date_of_birth'] = convertDateFormat(cleanData['date_of_birth']);
}
if (cleanData['Membership Date Paid']) {
cleanData['Membership Date Paid'] = convertDateFormat(cleanData['Membership Date Paid']);
if (cleanData['membership_date_paid']) {
cleanData['membership_date_paid'] = convertDateFormat(cleanData['membership_date_paid']);
}
if (cleanData['Payment Due Date']) {
cleanData['Payment Due Date'] = convertDateFormat(cleanData['Payment Due Date']);
if (cleanData['payment_due_date']) {
cleanData['payment_due_date'] = convertDateFormat(cleanData['payment_due_date']);
}
console.log('[nocodb.updateMember] Clean data fields:', Object.keys(cleanData));