Atualizando rotas das vans com lógica do locador
This commit is contained in:
64
src/services/CreateVanLocatorService.ts
Normal file
64
src/services/CreateVanLocatorService.ts
Normal 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;
|
||||
25
src/services/FindVanLocatorService.ts
Normal file
25
src/services/FindVanLocatorService.ts
Normal 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;
|
||||
56
src/services/UpdateVanLocatorService.ts
Normal file
56
src/services/UpdateVanLocatorService.ts
Normal 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;
|
||||
Reference in New Issue
Block a user