All files / src/controllers/system-controller registerUserWithGoogle.js

0% Statements 0/15
0% Branches 0/6
0% Functions 0/1
0% Lines 0/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32                                                               
import UsersModel from "../../models/Users.js";
import googleAccountGetter from "../../utilities/googleAccountGetter.js";
import signUpUser from "./signUpUser.js";
 
 
export default async function registerUserWithGoogle(googleUserAccessToken) {
    try {
        const response = await googleAccountGetter(googleUserAccessToken);
        const { googleResponse, ok } = response
        if (ok) {
            const isExist = await UsersModel.findOne({ userEmail: googleResponse.email }, { userEmail: 1, _id: 0 });
            if (isExist) return { ok: false, message: "Your email already signed up, Just log in" };
            else {
                const userData = {
                    userName: googleResponse.name,
                    userEmail: googleResponse.email,
                    userPassword: googleResponse.sub,
                    signingMethod: "Google",
                    hisEmailVerified: !!googleResponse.email_verified
                };
                const signingUserResponse = await signUpUser(userData);
                if (signingUserResponse) return { ok: true, payload: signingUserResponse };
                else return { ok: false, message: "Signing process failed for unknown reason, Try again" };
            }
        } else {
            return googleResponse
        }
    } catch (error) {
        console.log(error);
        return;
    }
}