Skip to content

Commit d51e0a0

Browse files
Merge pull request #11 from VitorCarvalho67/FixBranch
Add route for delete avaliation of user
2 parents 2eec4e2 + ea5f383 commit d51e0a0

4 files changed

Lines changed: 48 additions & 0 deletions

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export interface DeleteAvaliationDTO {
2+
avaliationId: string;
3+
userId: string;
4+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { Request, Response } from "express";
2+
import { DeleteAvaliationUseCase } from "./DeleteAvaliationUseCase";
3+
4+
export class DeleteAvaliationController {
5+
async handle(req:Request, res:Response) {
6+
const { avaliationId, userId } = req.body;
7+
8+
const deleteAvaliationUseCase = new DeleteAvaliationUseCase();
9+
10+
const result = await deleteAvaliationUseCase.execute({ avaliationId, userId });
11+
12+
return res.status(200).json(result)
13+
}
14+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { Avaliation } from "@prisma/client";
2+
import prisma from "../../../../prisma/client";
3+
import { DeleteAvaliationDTO } from "../../dtos/DeleteAvaliationDTO";
4+
import { AppError } from "../../../../errors/error";
5+
6+
export class DeleteAvaliationUseCase {
7+
async execute({avaliationId, userId}: DeleteAvaliationDTO ): Promise<Avaliation> {
8+
const Avaliation = await prisma.avaliation.findFirst({
9+
where: {
10+
id: avaliationId,
11+
userId
12+
}
13+
});
14+
15+
if(!Avaliation) {
16+
throw new AppError("Avaliation not found");
17+
}
18+
19+
const deletedAvaliation = await prisma.avaliation.delete({
20+
where: {
21+
id: avaliationId
22+
}
23+
});
24+
25+
return deletedAvaliation;
26+
}
27+
}

src/routes/avaliation.routes.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import { Router } from 'express';
22
import { CreateAvaliationController } from '../modules/avaliations/useCases/CreateAvaliation/CreateAvaliationController';
3+
import { DeleteAvaliationController } from '../modules/avaliations/useCases/DeleteAvaliation/DeleteAvaliationController';
34
import { userAuthMiddleware } from '../middleware/userAutentication';
45

56
const createAvaliationController = new CreateAvaliationController();
7+
const deleteAvaliationController = new DeleteAvaliationController();
68

79
const AvaliationRoutes = Router();
810

911
AvaliationRoutes.post('/', userAuthMiddleware ,createAvaliationController.handle); // criar uma avaliação
12+
AvaliationRoutes.delete('/delete', userAuthMiddleware, deleteAvaliationController.handle); // deletar uma avaliação
1013

1114
export { AvaliationRoutes };

0 commit comments

Comments
 (0)