chore: manually committing auth module to remoter

This commit is contained in:
Balu Babu
2023-01-09 19:02:14 +05:30
parent 90bc0483ae
commit 0c154be04e
16 changed files with 468 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
import { Injectable } from '@nestjs/common';
import { PrismaService } from 'src/prisma/prisma.service';
import * as O from 'fp-ts/Option';
import { User } from './user.model';
@Injectable()
export class UserService {
constructor(private prisma: PrismaService) {}
async findUserByEmail(email: string) {
try {
const user: User = await this.prisma.user.findUniqueOrThrow({
where: {
email: email,
},
});
return O.some(user);
} catch (error) {
return O.none;
}
}
async createUser(email: string) {
const createdUser = await this.prisma.user.create({
data: {
email: email,
accounts: {
create: {
provider: 'magic',
providerAccountId: email,
},
},
},
});
return createdUser;
}
async createUserSSO(accessToken, refreshToken, profile) {
const createdUser = await this.prisma.user.create({
data: {
name: profile.displayName,
email: profile.emails[0].value,
image: profile.photos[0].value,
accounts: {
create: {
provider: profile.provider,
providerAccountId: profile.id,
providerRefreshToken: refreshToken,
providerAccessToken: accessToken,
},
},
},
});
return createdUser;
}
async createProviderAccount(user, accessToken, refreshToken, profile) {
const createdProvider = await this.prisma.account.create({
data: {
userId: user.id,
provider: profile.provider,
providerAccountId: profile.id,
providerRefreshToken: refreshToken ? refreshToken : null,
providerAccessToken: accessToken ? accessToken : null,
},
});
return createdProvider;
}
}