Compare commits
No commits in common. "a209513a688994f48b152637f482307a47f744a9" and "a25ba0844a3d9f31a950e505de43512f61229a44" have entirely different histories.
a209513a68
...
a25ba0844a
|
|
@ -11,48 +11,8 @@ const auth = new google.auth.GoogleAuth({
|
||||||
const sheets = google.sheets({ version: 'v4', auth });
|
const sheets = google.sheets({ version: 'v4', auth });
|
||||||
const SPREADSHEET_ID = import.meta.env.GOOGLE_SHEET_ID;
|
const SPREADSHEET_ID = import.meta.env.GOOGLE_SHEET_ID;
|
||||||
|
|
||||||
async function emailExists(email: string): Promise<boolean> {
|
|
||||||
const formula = `=COUNTIF(G:G,"${email}")`;
|
|
||||||
|
|
||||||
// Escribir fórmula en celda auxiliar
|
|
||||||
await sheets.spreadsheets.values.update({
|
|
||||||
spreadsheetId: SPREADSHEET_ID,
|
|
||||||
range: 'DATABASE!Z1', // usa una columna libre
|
|
||||||
valueInputOption: 'USER_ENTERED',
|
|
||||||
requestBody: {
|
|
||||||
values: [[formula]],
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
// Leer resultado calculado
|
|
||||||
const result = await sheets.spreadsheets.values.get({
|
|
||||||
spreadsheetId: SPREADSHEET_ID,
|
|
||||||
range: 'DATABASE!Z1',
|
|
||||||
valueRenderOption: 'UNFORMATTED_VALUE',
|
|
||||||
});
|
|
||||||
|
|
||||||
const count = result.data.values?.[0]?.[0] || 0;
|
|
||||||
|
|
||||||
return Number(count) > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export async function appendToSheet(values: any[]) {
|
export async function appendToSheet(values: any[]) {
|
||||||
try {
|
try {
|
||||||
const email = values[6]; // índice donde está el email en tu array
|
|
||||||
|
|
||||||
if (!email) {
|
|
||||||
throw new Error('Email requerido');
|
|
||||||
}
|
|
||||||
|
|
||||||
const exists = await emailExists(email);
|
|
||||||
if (exists) {
|
|
||||||
return {
|
|
||||||
success: false,
|
|
||||||
message: 'El email ya existe en la base de datos',
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
await sheets.spreadsheets.values.append({
|
await sheets.spreadsheets.values.append({
|
||||||
spreadsheetId: SPREADSHEET_ID,
|
spreadsheetId: SPREADSHEET_ID,
|
||||||
range: 'DATABASE!A2:H2',
|
range: 'DATABASE!A2:H2',
|
||||||
|
|
@ -61,12 +21,6 @@ export async function appendToSheet(values: any[]) {
|
||||||
values: [values],
|
values: [values],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
|
||||||
success: true,
|
|
||||||
message: 'Registro guardado correctamente',
|
|
||||||
};
|
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue