oralify-backend
Version:
Express Node CRUD backend for Oralify
84 lines (67 loc) • 2.63 kB
text/typescript
/*
import {Request, Response} from 'express';
import {supabase} from './index';
import {generateUniqueUsername, verifyGoogleIdToken} from './auth';
import {nameInitial} from '../src/types/utils/dates';
export const generateUsername = async (req: Request, res: Response) => {
const {name, speciality} = req.body;
if (supabase) {
const {data: users, error} = await supabase.from('users').select('username');
if (error) {
res.status(500).json({error: 'Error fetching users'});
return;
}
const initialName = nameInitial(name);
const usernameWithSpeciality = `${initialName}${speciality}`.toLowerCase();
const username = await generateUniqueUsername(users, usernameWithSpeciality);
console.log('Generating', username, ' from: ', name, speciality);
res.json({username});
}
};
export const updateUserFields = async (req: Request, res: Response) => {
const {email, fields} = req.body;
if (supabase) {
const {data: updatedUser, error} = await supabase.from('users').update(fields).eq('email', email);
if (error) {
console.log('Error al actualizar usuario:', error.message);
res.status(500).send('Error al actualizar usuario');
return;
}
res.status(200).json({user: updatedUser});
}
};
export const authenticateGoogleUser = async (req: Request, res: Response) => {
const {idToken} = req.body;
// Verifica y decodifica el token de ID de Google
const {payload} = await verifyGoogleIdToken(idToken);
// Comprueba si el usuario ya existe en la base de datos de Supabase
if (supabase && payload) {
const {data: existingUser, error} = await supabase.from('users').select('*').eq('email', payload.email).single();
if (error) {
console.log('Error al buscar usuario:', error.message);
res.status(500).send('Error al buscar usuario');
return;
}
// Si el usuario no existe, crea uno nuevo
if (!existingUser) {
const username = payload?.name || 'Paco';
const newUser = {
// Aquí debes agregar los campos que necesites para tu esquema de usuario
email: payload?.email,
name: payload?.name,
username: username,
isConnected: true,
};
if (supabase) {
const {error: insertError} = await supabase.from('users').insert(newUser);
if (insertError) {
console.log('Error al insertar nuevo usuario:', insertError.message);
res.status(500).send('Error al insertar nuevo usuario');
return;
}
}
res.status(200).send('Usuario autenticado y creado (si es necesario)');
}
}
};
*/