Linkando van com usuário

This commit is contained in:
Matheus Albino Brunhara
2022-06-20 05:40:56 -05:00
parent 04de75faf6
commit 2f55141bdf
13 changed files with 287 additions and 1159 deletions

View File

@@ -1,10 +1,12 @@
import { getRepository } from 'typeorm';
import AppError from '../errors/AppError';
import User from '../models/User';
import Van from '../models/Van';
interface Request {
id_user: string;
plate: string;
brand: string;
model: string;
@@ -18,6 +20,7 @@ interface Request {
class CreateVanService {
public async execute({
id_user,
plate,
brand,
model,
@@ -29,6 +32,18 @@ class CreateVanService {
locator_state,
}: Request): Promise<Van> {
const vansRepository = getRepository(Van);
const usersRepository = getRepository(User);
const user = await usersRepository.findOne({
where: { id_user },
});
if (!user) {
throw new AppError(
'O usuário informado não foi encontrado.',
404,
);
}
const vanExists = await vansRepository.findOne({
where: { plate },
@@ -42,6 +57,7 @@ class CreateVanService {
}
const van = vansRepository.create({
user,
plate,
brand,
model,

View File

@@ -5,15 +5,15 @@ import AppError from '../errors/AppError';
import Van from '../models/Van';
class FindVanService {
public async execute(id_van: string): Promise<Van> {
public async execute(plate: string): Promise<Van> {
const vansRepository = getRepository(Van);
const van = await vansRepository.findOne({
where: { id_van }
where: { plate }
});
if (!van) {
throw new AppError('Van does not exist.');
throw new AppError('A van informada não existe.');
};
return van;

View File

@@ -0,0 +1,33 @@
import { getRepository } from 'typeorm';
import AppError from '../errors/AppError';
import User from '../models/User';
import Van from '../models/Van';
class FindVanByUserIdService {
public async execute(id_user: string): Promise<Van[]> {
const usersRepository = getRepository(User);
const vansRepository = getRepository(Van);
const user = await usersRepository.findOne({
where: { id_user }
});
if (!user) {
throw new AppError('O usuário informado não existe.', 404);
};
const van = await vansRepository.find({
where: { user }
});
if (!van) {
throw new AppError('Não há nenhuma van cadastrada para esse usuário.');
};
return van;
}
}
export default FindVanByUserIdService;

View File

@@ -23,18 +23,29 @@ class UpdateUserService {
const socialRepository = getRepository(Social);
const user = await usersRepository.findOne({
where: { id_user: id_user }
where: { id_user }
});
if (!user) {
throw new AppError('O usuário informado não existe.');
throw new AppError('O usuário informado não existe.', 404);
};
if (name) user.name = name
if (lastname) user.lastname = lastname
if (bio) user.bio = bio
if (email) user.email = email
if (phone_number) user.phone_number = phone_number
if (phone_number) {
const phoneAlreadyExists = await usersRepository.findOne({
where: { phone_number }
});
if (phoneAlreadyExists) {
throw new AppError('O telefone informado já está em uso por outra conta!', 409);
}
}
user.phone_number = phone_number
if (document_type) user.document_type = document_type
if (document) user.document = document