Atualizando rotas das vans com lógica do locador

This commit is contained in:
Matheus Albino Brunhara
2022-06-19 23:14:28 -05:00
parent 98fb081648
commit 2631af4681
9 changed files with 289 additions and 7 deletions

View File

@@ -0,0 +1,64 @@
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

@@ -0,0 +1,25 @@
import { getRepository } from 'typeorm';
import AppError from '../errors/AppError';
import Van from '../models/Van';
import VanLocator from '../models/VanLocator';
class FindVanLocatorService {
public async execute(id_van: string): 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);
};
return van.locator;
}
}
export default FindVanLocatorService;

View File

@@ -0,0 +1,56 @@
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;