Add unique member ID generation to registration process
All checks were successful
Build And Push Image / docker (push) Successful in 3m25s
All checks were successful
Build And Push Image / docker (push) Successful in 3m25s
- Generate and store unique member IDs during user registration - Update email templates to include formatted member ID and registration date - Add member_id field mapping in NocoDB utility functions - Enhance email service with better logging and template data handling
This commit is contained in:
@@ -23,6 +23,7 @@ export interface WelcomeEmailData {
|
||||
memberId: string;
|
||||
registrationDate?: string;
|
||||
logoUrl?: string;
|
||||
email?: string;
|
||||
}
|
||||
|
||||
export interface VerificationEmailData {
|
||||
@@ -230,15 +231,23 @@ export class EmailService {
|
||||
async sendWelcomeEmail(to: string, data: WelcomeEmailData): Promise<void> {
|
||||
const template = this.getTemplate('welcome');
|
||||
if (!template) {
|
||||
console.error('[EmailService] ❌ Welcome email template not found! Available templates:', Array.from(this.templates.keys()));
|
||||
throw new Error('Welcome email template not found');
|
||||
}
|
||||
|
||||
const config = useRuntimeConfig();
|
||||
const templateData = {
|
||||
...data,
|
||||
logoUrl: data.logoUrl || `${useRuntimeConfig().public.domain}/MONACOUSA-Flags_376x376.png`
|
||||
logoUrl: data.logoUrl || `${config.public.domain}/MONACOUSA-Flags_376x376.png`,
|
||||
baseUrl: config.public.domain || 'https://portal.monacousa.org',
|
||||
email: data.email || to
|
||||
};
|
||||
|
||||
console.log('[EmailService] Template data:', templateData);
|
||||
|
||||
const html = template(templateData);
|
||||
console.log('[EmailService] Generated HTML length:', html.length);
|
||||
console.log('[EmailService] HTML preview (first 200 chars):', html.substring(0, 200));
|
||||
|
||||
await this.sendEmail({
|
||||
to,
|
||||
|
||||
@@ -117,6 +117,7 @@ export const normalizeFieldsFromNocoDB = (data: any): Member => {
|
||||
'Address': 'address',
|
||||
'Membership Status': 'membership_status',
|
||||
'Member Since': 'member_since',
|
||||
'Member ID': 'member_id', // Added field mapping for member_id
|
||||
'Current Year Dues Paid': 'current_year_dues_paid',
|
||||
'Membership Date Paid': 'membership_date_paid',
|
||||
'Payment Due Date': 'payment_due_date',
|
||||
@@ -132,6 +133,7 @@ export const normalizeFieldsFromNocoDB = (data: any): Member => {
|
||||
'address': 'address',
|
||||
'membership_status': 'membership_status',
|
||||
'member_since': 'member_since',
|
||||
'member_id': 'member_id',
|
||||
'current_year_dues_paid': 'current_year_dues_paid',
|
||||
'membership_date_paid': 'membership_date_paid',
|
||||
'payment_due_date': 'payment_due_date'
|
||||
@@ -171,6 +173,7 @@ export const normalizeFieldsForNocoDB = (data: any): Record<string, any> => {
|
||||
'address': 'Address',
|
||||
'membership_status': 'Membership Status',
|
||||
'member_since': 'Member Since',
|
||||
'member_id': 'Member ID', // Added field mapping for member_id
|
||||
'current_year_dues_paid': 'Current Year Dues Paid',
|
||||
'membership_date_paid': 'Membership Date Paid',
|
||||
'payment_due_date': 'Payment Due Date',
|
||||
@@ -311,6 +314,7 @@ export const createMember = async (data: Partial<Member>): Promise<Member> => {
|
||||
"membership_status",
|
||||
"address",
|
||||
"member_since",
|
||||
"member_id",
|
||||
"keycloak_id"
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user