chore: created the route to initate magic link auth

This commit is contained in:
Balu Babu
2023-01-09 17:43:45 +05:30
parent d9e80ebef9
commit 32765b2d34
8 changed files with 63 additions and 13 deletions

View File

@@ -23,9 +23,9 @@ export class GqlAuthGuard implements CanActivate {
const idToken = ctx.reqHeaders.authorization.split(' ')[1];
const authUser: User = {
uid: 'aabb22ccdd',
displayName: 'exampleUser',
photoURL: 'http://example.com/avatar',
id: 'aabb22ccdd',
name: 'exampleUser',
image: 'http://example.com/avatar',
email: 'me@example.com',
};

View File

@@ -3,25 +3,37 @@ import { ObjectType, ID, Field } from '@nestjs/graphql';
@ObjectType()
export class User {
@Field(() => ID, {
description: 'Firebase UID of the user',
description: 'ID of the user',
})
uid: string;
id: string;
@Field({
nullable: true,
description: 'Displayed name of the user (if given)',
description: 'Name of the user (if fetched)',
})
displayName?: string;
name?: string;
@Field({
nullable: true,
description: 'Email of the user (if given)',
description: 'Email of the user (if fetched)',
})
email?: string;
@Field({
nullable: true,
description: 'URL to the profile photo of the user (if given)',
description: 'URL to the profile photo of the user (if fetched)',
})
photoURL?: string;
image?: string;
@Field({
nullable: true,
description: 'Flag to determine if user is an Admin or not',
})
isAdmin?: string;
@Field({
nullable: true,
description: 'Date when the user account was created',
})
createdOn?: string;
}

View File

@@ -1,10 +1,11 @@
import { Module } from '@nestjs/common';
import { UserResolver } from './user.resolver';
import { PubSubModule } from 'src/pubsub/pubsub.module';
import { UserService } from './user.service';
@Module({
imports: [PubSubModule],
providers: [UserResolver],
exports: [],
exports: [UserService],
})
export class UserModule {}

View File

@@ -108,3 +108,14 @@ export const taskEitherValidateArraySeq = <A, B>(
TE.getApplicativeTaskValidation(T.ApplicativeSeq, A.getMonoid<A>()),
),
);
/**
* Checks to see if the email is valid or not
* @param email The email
* @returns A Boolean depending on the format of the email
*/
export const validateEmail = (email: string) => {
return new RegExp(
"([!#-'*+/-9=?A-Z^-~-]+(.[!#-'*+/-9=?A-Z^-~-]+)*|\"([]!#-[^-~ \t]|(\\[\t -~]))+\")@([!#-'*+/-9=?A-Z^-~-]+(.[!#-'*+/-9=?A-Z^-~-]+)*|[[\t -Z^-~]*])",
).test(email);
};