Incluindo tabela carModels e rotas para pegar lista de carros
This commit is contained in:
142
src/constants/carModels.ts
Normal file
142
src/constants/carModels.ts
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
const carModels = [
|
||||||
|
{
|
||||||
|
name: 'Aston Martin',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Audi',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Bentley',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'BMW',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'BMW Motorrad',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'BYD',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Caoa Chery',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Chevrolet',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Chrysler',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Citroën',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Dodge',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Ferrari',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Fiat',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Ford',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Honda',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Husqvarna',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Hyundai',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'JAC',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Jaguar',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Jeep',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Kia',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Lamborghini',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Land Rover',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Lexus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Lifan',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Maserati',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'McLaren',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Mercedes-Benz',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Mini',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Mitsubishi',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Nissan',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Peugeot',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Porsche',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Ram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Renault',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Rolls Royce',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Royal Enfield',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Smart',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Subaru',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Suzuki',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Toyota',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Triumph',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Troller',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Volkswagen',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Volvo',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Yamaha',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default carModels;
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
import { MigrationInterface, QueryRunner, Table } from 'typeorm';
|
||||||
|
|
||||||
|
export class CreateCarModelsTable1653768789073 implements MigrationInterface {
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.createTable(
|
||||||
|
new Table({
|
||||||
|
name: 'carModels',
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
name: 'id_model',
|
||||||
|
type: 'uuid',
|
||||||
|
isPrimary: true,
|
||||||
|
generationStrategy: 'uuid',
|
||||||
|
default: 'uuid_generate_v4()',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'name',
|
||||||
|
type: 'varchar',
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.dropTable('carModels');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import { getConnection, MigrationInterface, QueryRunner } from "typeorm";
|
||||||
|
|
||||||
|
import carModels from '../../constants/carModels'
|
||||||
|
import CarModels from "../../models/CarModels";
|
||||||
|
|
||||||
|
export class InsertDataIntoCarModelsTable1653769103891 implements MigrationInterface {
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
carModels.forEach(async (car) => {
|
||||||
|
const GBP = await queryRunner.manager.save(queryRunner.manager.create<CarModels>(CarModels, { name: car.name }))
|
||||||
|
}
|
||||||
|
)}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await getConnection()
|
||||||
|
.createQueryBuilder()
|
||||||
|
.delete()
|
||||||
|
.from(CarModels)
|
||||||
|
.execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
12
src/models/CarModels.ts
Normal file
12
src/models/CarModels.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
|
||||||
|
|
||||||
|
@Entity('carModels')
|
||||||
|
class CarModels {
|
||||||
|
@PrimaryGeneratedColumn('uuid')
|
||||||
|
id_model: string;
|
||||||
|
|
||||||
|
@Column()
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default CarModels;
|
||||||
17
src/routes/cars.routes.ts
Normal file
17
src/routes/cars.routes.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import { Router } from 'express';
|
||||||
|
|
||||||
|
import ensureAuthenticated from '../middlewares/ensureAuthenticated';
|
||||||
|
|
||||||
|
import GetCarModelsService from '../services/GetCarModelsService';
|
||||||
|
|
||||||
|
const carsRouter = Router();
|
||||||
|
|
||||||
|
carsRouter.get('/list', ensureAuthenticated, async (request, response) => {
|
||||||
|
const getCarModelsService = new GetCarModelsService();
|
||||||
|
|
||||||
|
const carModels = await getCarModelsService.execute();
|
||||||
|
|
||||||
|
return response.json({ data: carModels });
|
||||||
|
});
|
||||||
|
|
||||||
|
export default carsRouter;
|
||||||
@@ -2,10 +2,12 @@ import { Router } from 'express';
|
|||||||
|
|
||||||
import sessionsRouter from './sessions.routes';
|
import sessionsRouter from './sessions.routes';
|
||||||
import usersRouter from './users.routes';
|
import usersRouter from './users.routes';
|
||||||
|
import carsRouter from './cars.routes';
|
||||||
|
|
||||||
const routes = Router();
|
const routes = Router();
|
||||||
|
|
||||||
routes.use('/users', usersRouter);
|
routes.use('/users', usersRouter);
|
||||||
routes.use('/sessions', sessionsRouter);
|
routes.use('/sessions', sessionsRouter);
|
||||||
|
routes.use('/cars', carsRouter);
|
||||||
|
|
||||||
export default routes;
|
export default routes;
|
||||||
|
|||||||
@@ -59,8 +59,6 @@ usersRouter.get('/:id', ensureAuthenticated, async (request, response) => {
|
|||||||
|
|
||||||
const finalDate = `${date}/${month}/${year}`
|
const finalDate = `${date}/${month}/${year}`
|
||||||
|
|
||||||
console.log(finalDate)
|
|
||||||
|
|
||||||
const userWithoutPassword = {
|
const userWithoutPassword = {
|
||||||
id_user: user.id_user,
|
id_user: user.id_user,
|
||||||
name: user.name,
|
name: user.name,
|
||||||
|
|||||||
22
src/services/GetCarModelsService.ts
Normal file
22
src/services/GetCarModelsService.ts
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import { getRepository } from 'typeorm';
|
||||||
|
|
||||||
|
import AppError from '../errors/AppError';
|
||||||
|
|
||||||
|
import CarModels from '../models/CarModels';
|
||||||
|
|
||||||
|
class GetCarModelsService {
|
||||||
|
public async execute(): Promise<CarModels[]> {
|
||||||
|
const carModelsRepository = getRepository(CarModels);
|
||||||
|
|
||||||
|
const carModels = await carModelsRepository.find();
|
||||||
|
|
||||||
|
if (!carModels) {
|
||||||
|
// carModels, fazer no front um tratamento para isso
|
||||||
|
throw new AppError('Não há modelos de carro cadastrados.');
|
||||||
|
};
|
||||||
|
|
||||||
|
return carModels;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default GetCarModelsService;
|
||||||
Reference in New Issue
Block a user