Merge branch 'master' into feature/buscar-transporte
This commit is contained in:
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;
|
||||
@@ -4,6 +4,7 @@ import searchRoutes from './search.routes';
|
||||
import sessionsRouter from './sessions.routes';
|
||||
import transportesRouter from './transportes.routes';
|
||||
import usersRouter from './users.routes';
|
||||
import carsRouter from './cars.routes';
|
||||
|
||||
const routes = Router();
|
||||
|
||||
@@ -11,5 +12,6 @@ routes.use('/users', usersRouter);
|
||||
routes.use('/sessions', sessionsRouter);
|
||||
routes.use('/search', searchRoutes);
|
||||
routes.use('/transportes', transportesRouter);
|
||||
routes.use('/cars', carsRouter);
|
||||
|
||||
export default routes;
|
||||
|
||||
@@ -1,9 +1,19 @@
|
||||
import { Router } from 'express';
|
||||
import { sign, verify } from 'jsonwebtoken';
|
||||
|
||||
import authConfig from '../config/auth';
|
||||
import AppError from '../errors/AppError';
|
||||
|
||||
import AuthenticateUserService from '../services/AuthenticateUserService';
|
||||
|
||||
const sessionsRouter = Router();
|
||||
|
||||
interface TokenPayload {
|
||||
iat: number;
|
||||
exp: number;
|
||||
sub: string;
|
||||
}
|
||||
|
||||
// login pode ser: email ou username
|
||||
sessionsRouter.post('/', async (request, response) => {
|
||||
const { login, password } = request.body;
|
||||
@@ -15,7 +25,24 @@ sessionsRouter.post('/', async (request, response) => {
|
||||
password,
|
||||
});
|
||||
|
||||
return response.json({ message: 'User logged in sucessfully', token: token });
|
||||
return response.json({ message: 'Usuário autenticado com sucesso!', token: token });
|
||||
});
|
||||
|
||||
sessionsRouter.post('/refresh', async(request, response) => {
|
||||
const { token } = request.body;
|
||||
|
||||
let sub = null;
|
||||
let decoded = null;
|
||||
|
||||
try {
|
||||
decoded = verify(token, authConfig.jwt.secret);
|
||||
} catch (error) {
|
||||
throw new AppError('Token de autenticação inválido.', 401);
|
||||
}
|
||||
|
||||
sub = decoded as TokenPayload;
|
||||
|
||||
return response.json({ "status": "success", "userId": sub.sub });
|
||||
})
|
||||
|
||||
export default sessionsRouter;
|
||||
|
||||
@@ -50,27 +50,38 @@ usersRouter.get('/:id', ensureAuthenticated, async (request, response) => {
|
||||
|
||||
const user = await findUser.execute(id);
|
||||
|
||||
// converting ISO 8601 date to normal date
|
||||
let birth_date = new Date(user.birth_date)
|
||||
|
||||
let year = birth_date.getFullYear()
|
||||
let month = birth_date.getMonth()+1
|
||||
let date = birth_date.getDate()
|
||||
|
||||
const finalDate = `${date}/${month}/${year}`
|
||||
|
||||
const userWithoutPassword = {
|
||||
id_user: user.id_user,
|
||||
name: user.name,
|
||||
lastname: user.lastname,
|
||||
email: user.email,
|
||||
birth_date: user.birth_date,
|
||||
birth_date: finalDate,
|
||||
avatar_image: user.avatar_image,
|
||||
bio: user.bio,
|
||||
created_at: user.created_at,
|
||||
updated_at: user.updated_at,
|
||||
// created_at: user.created_at,
|
||||
// updated_at: user.updated_at,
|
||||
};
|
||||
|
||||
return response.json({ data: userWithoutPassword });
|
||||
});
|
||||
|
||||
usersRouter.post('/', async (request, response) => {
|
||||
const { name, email, birth_date, password } = request.body;
|
||||
const { name, lastname, email, birth_date, password } = request.body;
|
||||
|
||||
const createUser = new CreateUserService();
|
||||
|
||||
const user = await createUser.execute({
|
||||
name,
|
||||
lastname,
|
||||
email,
|
||||
birth_date,
|
||||
password,
|
||||
@@ -87,13 +98,14 @@ usersRouter.post('/', async (request, response) => {
|
||||
});
|
||||
|
||||
usersRouter.patch('/edit', ensureAuthenticated, async (request, response) => {
|
||||
const { name, username, bio, email, birth_date } = request.body;
|
||||
const { name, lastname, username, bio, email, birth_date } = request.body;
|
||||
|
||||
const updateUserService = new UpdateUserService();
|
||||
|
||||
await updateUserService.execute({
|
||||
id_user: request.user.id_user,
|
||||
name,
|
||||
lastname,
|
||||
username,
|
||||
bio,
|
||||
email,
|
||||
|
||||
Reference in New Issue
Block a user