Adicionando rota que retorna se usuário é status motorista

This commit is contained in:
Matheus Albino Brunhara
2022-06-20 17:27:25 -05:00
parent 9c59fe64de
commit 8d77f0dae5
3 changed files with 119 additions and 52 deletions

View File

@@ -2,6 +2,8 @@ import { Router } from 'express';
import { getRepository } from 'typeorm'; import { getRepository } from 'typeorm';
import User from '../models/User'; import User from '../models/User';
import ensureAuthenticated from '../middlewares/ensureAuthenticated';
import CreateUserService from '../services/CreateUserService'; import CreateUserService from '../services/CreateUserService';
import FindUserService from '../services/FindUserService'; import FindUserService from '../services/FindUserService';
import FindUserSocialService from '../services/FindUserSocialService'; import FindUserSocialService from '../services/FindUserSocialService';
@@ -9,9 +11,8 @@ import UpdateUserSocialService from '../services/UpdateUserSocialService';
import UpdateUserService from '../services/UpdateUserService'; import UpdateUserService from '../services/UpdateUserService';
import UpdateUserAvatarService from '../services/UpdateUserAvatarService'; import UpdateUserAvatarService from '../services/UpdateUserAvatarService';
import UpdateUserPasswordService from '../services/UpdateUserPasswordService'; import UpdateUserPasswordService from '../services/UpdateUserPasswordService';
import ensureAuthenticated from '../middlewares/ensureAuthenticated';
import ensureAdmin from '../middlewares/ensureAdmin';
import AuthenticateUserService from '../services/AuthenticateUserService'; import AuthenticateUserService from '../services/AuthenticateUserService';
import CheckIfUserHasVansService from '../services/CheckIfUserHasVansService';
const usersRouter = Router(); const usersRouter = Router();
@@ -51,13 +52,13 @@ usersRouter.get('/:id', ensureAuthenticated, async (request, response) => {
const user = await findUserService.execute(id); const user = await findUserService.execute(id);
// converting ISO 8601 date to normal date // converting ISO 8601 date to normal date
let birth_date = new Date(user.birth_date) let birth_date = new Date(user.birth_date);
let year = birth_date.getFullYear() let year = birth_date.getFullYear();
let month = birth_date.getMonth()+1 let month = birth_date.getMonth() + 1;
let date = birth_date.getDate() let date = birth_date.getDate();
const finalDate = `${date}/${month}/${year}` const finalDate = `${date}/${month}/${year}`;
const userWithoutPassword = { const userWithoutPassword = {
id_user: user.id_user, id_user: user.id_user,
@@ -69,7 +70,7 @@ usersRouter.get('/:id', ensureAuthenticated, async (request, response) => {
avatar_image: user.avatar_image, avatar_image: user.avatar_image,
bio: user.bio, bio: user.bio,
document_type: user.document_type, document_type: user.document_type,
document: user.document document: user.document,
// created_at: user.created_at, // created_at: user.created_at,
// updated_at: user.updated_at, // updated_at: user.updated_at,
}; };
@@ -101,7 +102,16 @@ usersRouter.post('/', async (request, response) => {
}); });
usersRouter.patch('/edit', ensureAuthenticated, async (request, response) => { usersRouter.patch('/edit', ensureAuthenticated, async (request, response) => {
const { name, lastname, bio, email, phone_number, birth_date, document_type, document } = request.body; const {
name,
lastname,
bio,
email,
phone_number,
birth_date,
document_type,
document,
} = request.body;
const updateUserService = new UpdateUserService(); const updateUserService = new UpdateUserService();
@@ -114,13 +124,32 @@ usersRouter.patch('/edit', ensureAuthenticated, async (request, response) => {
phone_number, phone_number,
birth_date, birth_date,
document_type, document_type,
document document,
}); });
return response.json({ message: 'Perfil atualizado com sucesso.' }); return response.json({ message: 'Perfil atualizado com sucesso.' });
}); });
usersRouter.patch('/edit/avatar', ensureAuthenticated, async (request, response) => { usersRouter.get(
'/isDriver/:id_user',
// ensureAuthenticated,
async (request, response) => {
const { id_user } = request.params;
const checkIfUserHasVansService = new CheckIfUserHasVansService();
const userHasVans = await checkIfUserHasVansService.execute({
id_user,
});
return response.json({ result: userHasVans });
},
);
usersRouter.patch(
'/edit/avatar',
ensureAuthenticated,
async (request, response) => {
const { avatar_image } = request.body; const { avatar_image } = request.body;
const updateUserAvatarService = new UpdateUserAvatarService(); const updateUserAvatarService = new UpdateUserAvatarService();
@@ -131,7 +160,8 @@ usersRouter.patch('/edit/avatar', ensureAuthenticated, async (request, response)
}); });
return response.json({ message: 'Avatar atualizado com sucesso !' }); return response.json({ message: 'Avatar atualizado com sucesso !' });
}); },
);
usersRouter.get( usersRouter.get(
'/social/:id', '/social/:id',
@@ -196,27 +226,23 @@ usersRouter.get(
}, },
); );
usersRouter.patch( usersRouter.patch('/social', ensureAuthenticated, async (request, response) => {
'/social',
ensureAuthenticated,
async (request, response) => {
const { id_user, phone, whatsapp, facebook, telegram } = request.body; const { id_user, phone, whatsapp, facebook, telegram } = request.body;
const social_network = { const social_network = {
phone, phone,
whatsapp, whatsapp,
facebook, facebook,
telegram telegram,
} };
const updateUserSocialService = new UpdateUserSocialService(); const updateUserSocialService = new UpdateUserSocialService();
const social = await updateUserSocialService.execute({ const social = await updateUserSocialService.execute({
id_user, id_user,
social_network social_network,
}); });
return response.json({ data: social }); return response.json({ data: social });
}, });
);
export default usersRouter; export default usersRouter;

View File

@@ -20,7 +20,10 @@ vansRouter.get('/list', async (request, response) => {
return response.json({ data: vans }); return response.json({ data: vans });
}); });
vansRouter.get('/plate/:plate', ensureAuthenticated, async (request, response) => { vansRouter.get(
'/plate/:plate',
ensureAuthenticated,
async (request, response) => {
const { plate } = request.params; const { plate } = request.params;
const findVanService = new FindVanService(); const findVanService = new FindVanService();
@@ -28,9 +31,13 @@ vansRouter.get('/plate/:plate', ensureAuthenticated, async (request, response) =
const van = await findVanService.execute(plate); const van = await findVanService.execute(plate);
return response.json({ data: van }); return response.json({ data: van });
}); },
);
vansRouter.get('/user/:id_user', ensureAuthenticated, async (request, response) => { vansRouter.get(
'/user/:id_user',
// ensureAuthenticated,
async (request, response) => {
const { id_user } = request.params; const { id_user } = request.params;
const findVanByUserIdService = new FindVanByUserIdService(); const findVanByUserIdService = new FindVanByUserIdService();
@@ -38,7 +45,8 @@ vansRouter.get('/user/:id_user', ensureAuthenticated, async (request, response)
const vans = await findVanByUserIdService.execute(id_user); const vans = await findVanByUserIdService.execute(id_user);
return response.json({ data: vans }); return response.json({ data: vans });
}); },
);
vansRouter.post('/', ensureAuthenticated, async (request, response) => { vansRouter.post('/', ensureAuthenticated, async (request, response) => {
const { const {
@@ -55,8 +63,8 @@ vansRouter.post('/', ensureAuthenticated, async (request, response) => {
const createVanService = new CreateVanService(); const createVanService = new CreateVanService();
console.log('aaaaaaaaaaaaaaa') console.log('aaaaaaaaaaaaaaa');
console.log(request.user) console.log(request.user);
const van = await createVanService.execute({ const van = await createVanService.execute({
id_user: request.user.id_user, id_user: request.user.id_user,

View File

@@ -0,0 +1,33 @@
import { getRepository } from 'typeorm';
import AppError from '../errors/AppError';
import User from '../models/User';
import Van from '../models/Van';
interface Request {
id_user: string;
}
class CheckIfUserHasVansService {
public async execute({ id_user }: Request): Promise<Boolean> {
const usersRepository = getRepository(User);
const vansRepository = getRepository(Van);
const user = await usersRepository.findOne({
where: { id_user },
});
if (!user) {
throw new AppError('O usuário informado não foi encontrado.', 404);
}
const vanExists = await vansRepository.findOne({
where: { user },
});
return !!vanExists
}
}
export default CheckIfUserHasVansService;