From a0ffa3bb2d06b525208bbf58f67939b486480ffa Mon Sep 17 00:00:00 2001 From: Miodec Date: Fri, 15 Jan 2021 17:14:24 +0000 Subject: [PATCH] changed name availability into onRequest --- functions/index.js | 50 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/functions/index.js b/functions/index.js index a9d53d5c2..367e883b1 100644 --- a/functions/index.js +++ b/functions/index.js @@ -135,14 +135,36 @@ exports.clearName = functions.auth.user().onDelete((user) => { db.collection("users").doc(user.uid).delete(); }); -exports.checkNameAvailability = functions.https.onCall( +exports.checkNameAvailability = functions.https.onRequest( async (request, response) => { + response.set("Access-Control-Allow-Origin", origin); + if (request.method === "OPTIONS") { + // Send response to OPTIONS requests + response.set("Access-Control-Allow-Methods", "POST, GET, OPTIONS"); + response.set( + "Access-Control-Allow-Headers", + "Authorization,Content-Type" + ); + response.set("Access-Control-Max-Age", "3600"); + response.status(204).send(""); + return; + } + request = request.body.data; + // 1 - available // -1 - unavailable (taken) // -2 - not valid name // -999 - unknown error try { - if (!isUsernameValid(request.name)) return -2; + if (!isUsernameValid(request.name)) { + response.status(200).send({ + data: { + resultCode: -2, + message: "Username is not valid", + }, + }); + return; + } let takendata = await db .collection("takenNames") @@ -152,9 +174,21 @@ exports.checkNameAvailability = functions.https.onCall( takendata = takendata.data(); if (takendata !== undefined && takendata.taken) { - return -1; + response.status(200).send({ + data: { + resultCode: -1, + message: "Username is taken", + }, + }); + return; } else { - return 1; + response.status(200).send({ + data: { + resultCode: 1, + message: "Username is available", + }, + }); + return; } // return getAllNames().then((data) => { @@ -173,7 +207,13 @@ exports.checkNameAvailability = functions.https.onCall( `Error while checking name availability for ${request.name}:` + e.message ); - return -999; + response.status(200).send({ + data: { + resultCode: -999, + message: "Unexpected error: " + e, + }, + }); + return; } } );