Alterando lógica das rotas de vans e MER da tabela Vans

This commit is contained in:
Matheus Albino Brunhara
2022-06-20 00:52:31 -05:00
parent 7edb3b5814
commit ac44716428
15 changed files with 171 additions and 435 deletions

View File

@@ -1,64 +0,0 @@
import { getRepository } from 'typeorm';
import { v4 } from 'uuid';
import { hash } from 'bcryptjs';
import AppError from '../errors/AppError';
import Van from '../models/Van';
import VanLocator from '../models/VanLocator';
interface Request {
id_van: string;
name: string;
address: string;
complement: string;
city: string;
state: string;
}
class CreateVanLocatorService {
public async execute({
id_van,
name,
address,
complement,
city,
state,
}: Request): Promise<VanLocator> {
const vansRepository = getRepository(Van);
const vansLocatorsRepository = getRepository(VanLocator);
const van = await vansRepository.findOne({
where: { id_van },
});
if (!van) {
throw new AppError('A van informada não existe.', 404);
}
if (van.locator) {
throw new AppError(
'A van informada já possui um locador cadastrado.',
400,
);
}
const vanLocator = vansLocatorsRepository.create({
name,
address,
complement,
city,
state,
});
await vansLocatorsRepository.save(vanLocator);
// linka o locador para o registro da van
van.locator = vanLocator
await vansRepository.save(van);
return vanLocator;
}
}
export default CreateVanLocatorService;

View File

@@ -1,6 +1,4 @@
import { getRepository } from 'typeorm';
import { v4 } from 'uuid';
import { hash } from 'bcryptjs';
import AppError from '../errors/AppError';
@@ -11,6 +9,11 @@ interface Request {
brand: string;
model: string;
seats_number: string;
locator_name: string;
locator_address: string;
locator_complement: string;
locator_city: string;
locator_state: string;
}
class CreateVanService {
@@ -19,23 +22,36 @@ class CreateVanService {
brand,
model,
seats_number,
locator_name,
locator_address,
locator_complement,
locator_city,
locator_state,
}: Request): Promise<Van> {
const vansRepository = getRepository(Van);
const checkVanPlateExists = await vansRepository.findOne({
const vanExists = await vansRepository.findOne({
where: { plate },
});
if (checkVanPlateExists) {
throw new AppError('Placa do veículo já cadastrado!', 409);
if (vanExists) {
throw new AppError(
'Uma van com a placa informada já foi cadastrada.',
409,
);
}
const van = vansRepository.create({
id_van: v4(),
plate,
brand,
model,
seats_number: (Number)(seats_number),
seats_number,
document_status: false,
locator_name,
locator_address,
locator_complement,
locator_city,
locator_state,
});
await vansRepository.save(van);

View File

@@ -1,56 +0,0 @@
import { getRepository } from 'typeorm';
import AppError from '../errors/AppError';
import Van from '../models/Van';
import VanLocator from '../models/VanLocator';
interface Request {
id_van: string;
name: string;
address: string;
complement: string;
city: string;
state: string;
}
class UpdateVanLocatorService {
public async execute({
id_van,
name,
address,
complement,
city,
state,
}: Request): Promise<VanLocator> {
const vansRepository = getRepository(Van);
const vansLocatorsRepository = getRepository(VanLocator);
const van = await vansRepository.findOne({
where: { id_van },
});
if (!van) {
throw new AppError('A van informada não existe.', 404);
}
if (!van.locator) {
throw new AppError(
'A van informada não possui um locador cadastrado.',
404,
);
}
if (name) van.locator.name = name
if (address) van.locator.address = address
if (complement) van.locator.complement = complement
if (city) van.locator.city = city
if (state) van.locator.state = state
await vansRepository.save(van);
return van.locator;
}
}
export default UpdateVanLocatorService;

View File

@@ -0,0 +1,32 @@
import { getRepository } from 'typeorm';
import AppError from '../errors/AppError';
import Van from '../models/Van';
interface Request {
oldPlate: string;
newPlate: string;
}
class UpdateVanPlateService {
public async execute({ oldPlate, newPlate }: Request): Promise<Van> {
const vansRepository = getRepository(Van);
const van = await vansRepository.findOne({
where: { plate: oldPlate },
});
if (!van) {
throw new AppError('A van informada não existe.');
}
van.plate = newPlate
await vansRepository.save(van);
return van;
}
}
export default UpdateVanPlateService;

View File

@@ -6,9 +6,14 @@ import Van from '../models/Van';
interface Request {
plate: string;
brand: string;
model: string;
seats_number: string;
brand?: string;
model?: string;
seats_number?: string;
locator_name?: string;
locator_address?: string;
locator_complement?: string;
locator_city?: string;
locator_state?: string;
}
class UpdateVanService {
@@ -17,6 +22,11 @@ class UpdateVanService {
brand,
model,
seats_number,
locator_name,
locator_address,
locator_complement,
locator_city,
locator_state,
}: Request): Promise<Van> {
const vansRepository = getRepository(Van);
@@ -25,13 +35,17 @@ class UpdateVanService {
});
if (!van) {
throw new AppError('Van informada não existe.');
throw new AppError('A van informada não existe.');
}
if (plate) van.plate = plate;
if (brand) van.brand = brand;
if (model) van.model = model;
if (seats_number) van.seats_number = (Number)(seats_number);
if (brand) van.brand = brand
if (model) van.model = model
if (seats_number) van.seats_number = seats_number
if (locator_name) van.locator_name = locator_name
if (locator_address) van.locator_address = locator_address
if (locator_complement) van.locator_complement = locator_complement
if (locator_city) van.locator_city = locator_city
if (locator_state) van.locator_state = locator_state
await vansRepository.save(van);