chore: added teacher comments to all service methods
This commit is contained in:
@@ -9,6 +9,12 @@ import { USER_NOT_FOUND } from 'src/errors';
|
||||
export class UserService {
|
||||
constructor(private prisma: PrismaService) {}
|
||||
|
||||
/**
|
||||
* Find User with given email id
|
||||
*
|
||||
* @param {string} email User's email
|
||||
* @returns {Promise<O.None | O.Some<User>>} Option of found User
|
||||
*/
|
||||
async findUserByEmail(email: string) {
|
||||
try {
|
||||
const user = await this.prisma.user.findUniqueOrThrow({
|
||||
@@ -22,6 +28,12 @@ export class UserService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Find User with given ID
|
||||
*
|
||||
* @param {string} userUid User ID
|
||||
* @returns {Promise<O.None | O.Some<User>>} Option of found User
|
||||
*/
|
||||
async findUserById(userUid: string) {
|
||||
try {
|
||||
const user = await this.prisma.user.findUniqueOrThrow({
|
||||
@@ -35,6 +47,12 @@ export class UserService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new User when logged in via a Magic Link
|
||||
*
|
||||
* @param {string} email User's Email
|
||||
* @returns {Promise<User>} Created User
|
||||
*/
|
||||
async createUserMagic(email: string) {
|
||||
const createdUser = await this.prisma.user.create({
|
||||
data: {
|
||||
@@ -51,6 +69,14 @@ export class UserService {
|
||||
return createdUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new User when logged in via a SSO provider
|
||||
*
|
||||
* @param {string} accessToken User's access token generated by providers
|
||||
* @param {string} refreshToken User's refresh token generated by providers
|
||||
* @param {any} profile Data received from SSO provider on the users account
|
||||
* @returns {Promise<User>} Created User
|
||||
*/
|
||||
async createUserSSO(accessToken: string, refreshToken: string, profile) {
|
||||
const createdUser = await this.prisma.user.create({
|
||||
data: {
|
||||
@@ -71,6 +97,15 @@ export class UserService {
|
||||
return createdUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new Account for a given User
|
||||
*
|
||||
* @param {AuthUser} user User object
|
||||
* @param {string} accessToken User's access token generated by providers
|
||||
* @param {string} refreshToken User's refresh token generated by providers
|
||||
* @param {any} profile Data received from SSO provider on the users account
|
||||
* @returns {Promise<Account>} Created Account
|
||||
*/
|
||||
async createProviderAccount(
|
||||
user: AuthUser,
|
||||
accessToken: string,
|
||||
@@ -94,6 +129,13 @@ export class UserService {
|
||||
return createdProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update User displayName and photoURL
|
||||
*
|
||||
* @param {AuthUser} user User object
|
||||
* @param {any} profile Data received from SSO provider on the users account
|
||||
* @returns {Promise<E.Right<User> | E.Left<"user/not_found">>} Updated user object
|
||||
*/
|
||||
async updateUserDetails(user: AuthUser, profile) {
|
||||
try {
|
||||
const updatedUser = await this.prisma.user.update({
|
||||
|
||||
Reference in New Issue
Block a user