first commit
This commit is contained in:
59
functions/src/auth/checkEmail.ts
Normal file
59
functions/src/auth/checkEmail.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
//NEEDS WORKS ON < PAST CODE >
|
||||
|
||||
import { onRequest } from 'firebase-functions/v2/https';
|
||||
import { logger } from 'firebase-functions/v2';
|
||||
// Import Request/Response from express
|
||||
|
||||
// Import the MIDDLEWARE HANDLER and db from config
|
||||
import { corsMiddlewareHandler, db } from '../config'; // Use the middleware export name
|
||||
// Import error utility
|
||||
import { toErrorWithMessage } from '../utils';
|
||||
|
||||
export const checkEmailDuplicateV2 = onRequest(async (request, response) => {
|
||||
return corsMiddlewareHandler(request, response, async () => {
|
||||
logger.info('checkEmailDuplicate: Function invoked via CORS Middleware.');
|
||||
|
||||
if (request.method !== 'POST') {
|
||||
logger.warn(`checkEmailDuplicate: Method not allowed: ${request.method}`);
|
||||
response.status(405).send({ message: 'Method Not Allowed.' });
|
||||
return;
|
||||
}
|
||||
|
||||
const { email } = request.body;
|
||||
// ... rest of your validation and try/catch logic using db and logger ...
|
||||
logger.info(`checkEmailDuplicate: Checking email: ${email}`);
|
||||
|
||||
if (!email || typeof email !== 'string') {
|
||||
logger.warn('checkEmailDuplicate: Missing or invalid email field.');
|
||||
response.status(400).send({
|
||||
/* ... */
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const usersCollection = db.collection('users');
|
||||
const querySnapshot = await usersCollection
|
||||
.where('email', '==', email)
|
||||
.limit(1)
|
||||
.get();
|
||||
|
||||
if (!querySnapshot.empty) {
|
||||
logger.info(`checkEmailDuplicate: Email ${email} exists.`);
|
||||
response.send({ status: 'exists' });
|
||||
} else {
|
||||
logger.info(`checkEmailDuplicate: Email ${email} is available.`);
|
||||
response.send({ status: 'available' });
|
||||
}
|
||||
} catch (error: unknown) {
|
||||
const errorMsg = toErrorWithMessage(error).message;
|
||||
logger.error(
|
||||
`checkEmailDuplicate: Error checking email ${email}: ${errorMsg}`,
|
||||
{ error },
|
||||
);
|
||||
response.status(500).send({
|
||||
/* ... */
|
||||
});
|
||||
}
|
||||
}); // End of corsMiddlewareHandler callback
|
||||
}); // End of onRequest
|
||||
Reference in New Issue
Block a user