144 lines
3.4 KiB
TypeScript
144 lines
3.4 KiB
TypeScript
import { Router } from 'express';
|
|
import { getRepository } from 'typeorm';
|
|
import Van from '../models/Van';
|
|
|
|
import ensureAuthenticated from '../middlewares/ensureAuthenticated';
|
|
|
|
import FindVanService from '../services/FindVanService';
|
|
import CreateVanService from '../services/CreateVanService';
|
|
import UpdateVanService from '../services/UpdateVanService';
|
|
import VanLocator from '../models/VanLocator';
|
|
import FindVanLocatorService from '../services/FindVanLocatorService';
|
|
import CreateVanLocatorService from '../services/CreateVanLocatorService';
|
|
import UpdateVanLocatorService from '../services/UpdateVanLocatorService';
|
|
|
|
const vansRouter = Router();
|
|
|
|
vansRouter.get('/list', async (request, response) => {
|
|
const vansRepository = getRepository(Van);
|
|
|
|
const vans = await vansRepository.find();
|
|
|
|
return response.json({ data: vans });
|
|
});
|
|
|
|
vansRouter.get('/:id', ensureAuthenticated, async (request, response) => {
|
|
const { id } = request.params;
|
|
|
|
const findVan = new FindVanService();
|
|
|
|
const van = await findVan.execute(id);
|
|
|
|
return response.json({ data: van });
|
|
});
|
|
|
|
vansRouter.post('/', async (request, response) => {
|
|
const { plate, brand, model, seats_number } = request.body;
|
|
|
|
const createVan = new CreateVanService();
|
|
|
|
const van = await createVan.execute({
|
|
plate,
|
|
brand,
|
|
model,
|
|
seats_number,
|
|
});
|
|
|
|
return response.json({ message: 'Van criada com sucesso.', data: van });
|
|
});
|
|
|
|
vansRouter.patch(
|
|
'/edit/:plate',
|
|
ensureAuthenticated,
|
|
async (request, response) => {
|
|
const { brand, model, seats_number } = request.body;
|
|
|
|
const { plate } = request.params;
|
|
|
|
const updateUserService = new UpdateVanService();
|
|
|
|
await updateUserService.execute({
|
|
plate,
|
|
brand,
|
|
model,
|
|
seats_number,
|
|
});
|
|
|
|
return response.json({
|
|
message: 'Informações da van atualizadas com sucesso.',
|
|
});
|
|
},
|
|
);
|
|
|
|
// locadores de van
|
|
vansRouter.get('/locator/list', async (request, response) => {
|
|
const vanLocatorsRepository = getRepository(VanLocator);
|
|
|
|
const vansLocators = await vanLocatorsRepository.find();
|
|
|
|
return response.json({ data: vansLocators });
|
|
});
|
|
|
|
vansRouter.get(
|
|
'/locator/:id',
|
|
ensureAuthenticated,
|
|
async (request, response) => {
|
|
const { id } = request.params;
|
|
|
|
const findVanLocator = new FindVanLocatorService();
|
|
|
|
const vanLocator = await findVanLocator.execute(id);
|
|
|
|
return response.json({ data: vanLocator });
|
|
},
|
|
);
|
|
|
|
vansRouter.post('/locator/:id_van', async (request, response) => {
|
|
const { name, address, complement, city, state } = request.body;
|
|
|
|
const { id_van } = request.params;
|
|
|
|
const createVanLocator = new CreateVanLocatorService();
|
|
|
|
const vanLocator = await createVanLocator.execute({
|
|
id_van,
|
|
name,
|
|
address,
|
|
complement,
|
|
city,
|
|
state,
|
|
});
|
|
|
|
return response.json({
|
|
message: 'Locador da van configurado com sucesso.',
|
|
data: vanLocator,
|
|
});
|
|
});
|
|
|
|
vansRouter.patch(
|
|
'/locator/edit/:id_van',
|
|
ensureAuthenticated,
|
|
async (request, response) => {
|
|
const { name, address, complement, city, state } = request.body;
|
|
|
|
const { id_van } = request.params;
|
|
|
|
const updateVanLocatorService = new UpdateVanLocatorService();
|
|
|
|
await updateVanLocatorService.execute({
|
|
id_van,
|
|
name,
|
|
address,
|
|
complement,
|
|
city,
|
|
state,
|
|
});
|
|
|
|
return response.json({
|
|
message: 'Informações da van atualizadas com sucesso.',
|
|
});
|
|
},
|
|
);
|
|
|
|
export default vansRouter;
|