send error if user already exist
This commit is contained in:
parent
431a5efdbb
commit
b7966be9ea
|
|
@ -13,7 +13,7 @@ const login = async (req: Request, res: Response) => {
|
||||||
}
|
}
|
||||||
const isValid = await comparePassword(userInfo.password, user.password);
|
const isValid = await comparePassword(userInfo.password, user.password);
|
||||||
if (!isValid) {
|
if (!isValid) {
|
||||||
return res.status(401).send('Invalid password');
|
return res.status(401).send({ error: 'Invalid password' });
|
||||||
}
|
}
|
||||||
return res.status(200).send(user);
|
return res.status(200).send(user);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,18 @@
|
||||||
import { newUser } from '@/controller/UserController';
|
import { newUser } from '@/controller/UserController';
|
||||||
import UserModel from '@/models/UserModel';
|
import { User } from '@/models/UserModel';
|
||||||
import { hashPassword } from '@/controller/AuthController';
|
import { hashPassword } from '@/controller/AuthController';
|
||||||
import { User } from '@prisma/client';
|
|
||||||
import { Request, Response } from 'express';
|
import { Request, Response } from 'express';
|
||||||
|
import { User as PrismaUser } from '@prisma/client';
|
||||||
|
|
||||||
const signup = async (req: Request, res: Response) => {
|
const signup = async (req: Request, res: Response) => {
|
||||||
try {
|
try {
|
||||||
UserModel.parse(req.body);
|
|
||||||
req.body.password = await hashPassword(req.body.password);
|
req.body.password = await hashPassword(req.body.password);
|
||||||
const user: User = req.body;
|
const user: User = User.parse({ ...req.body });
|
||||||
const prismaUser = await newUser(user);
|
const prismaUser: PrismaUser | null = await newUser(user);
|
||||||
|
if (!prismaUser) {
|
||||||
|
return res.status(400).send({ error: 'User already exists' });
|
||||||
|
}
|
||||||
|
|
||||||
return res.status(200).send(prismaUser);
|
return res.status(200).send(prismaUser);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return res.status(500).send(error);
|
return res.status(500).send(error);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { PrismaClient, User } from '@prisma/client';
|
import { PrismaClient } from '@prisma/client';
|
||||||
|
import { User } from '@/models/UserModel';
|
||||||
|
|
||||||
const prisma = new PrismaClient();
|
const prisma = new PrismaClient();
|
||||||
|
|
||||||
|
|
@ -12,12 +13,39 @@ const getUser = (email: string) => {
|
||||||
return user;
|
return user;
|
||||||
};
|
};
|
||||||
|
|
||||||
const newUser = (user: User) => {
|
const isUserExist = (email: string) =>
|
||||||
const prismaUser = prisma.user.create({
|
prisma.user
|
||||||
data: user,
|
.findUnique({
|
||||||
|
where: {
|
||||||
|
email,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then((user) => {
|
||||||
|
if (user) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
throw error;
|
||||||
|
});
|
||||||
|
|
||||||
|
const newUser = async (user: User) => {
|
||||||
|
const userExist: Boolean = await isUserExist(user.email);
|
||||||
|
if (userExist) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const newUser = await prisma.user.create({
|
||||||
|
data: {
|
||||||
|
email: user.email,
|
||||||
|
password: user.password,
|
||||||
|
firstName: user.firstName,
|
||||||
|
lastName: user.lastName,
|
||||||
|
role: 'USER',
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
return prismaUser;
|
return newUser;
|
||||||
};
|
};
|
||||||
|
|
||||||
export { getUser, newUser };
|
export { getUser, newUser };
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue