Skip to content

Commit 7d7eb63

Browse files
committed
contributing rules aplied
1 parent 4408d67 commit 7d7eb63

14 files changed

+284
-42
lines changed

LICENCE.MD

Lines changed: 227 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
- [About this project](#About-this-project)
44
- [Development Environment Setup](#Development-Environment-Setup)
55
- [Available Endpoints](#Available-Endpoints)
6+
- [Contribution](#Contribution)
7+
- [Licence](#Licence)
68

79
## About this project
810

@@ -12,10 +14,11 @@ This project is a web application developed using Node.js v16.20.1. It follows t
1214

1315
To set up the development environment for this project, follow these steps:
1416

15-
- [Docker File](https://hub.docker.com/repository/docker/clamshell6412/ecomerce_res_api/general) (production only)
16-
- Install Node.js v16.20.1 (or a compatible version) on your system.
17-
- Clone the project repository from [repository URL].
18-
- Install project dependencies using npm or yarn. Run npm install or yarn install in the project root directory.
17+
- [Download Docker Desktop](https://www.docker.com/products/docker-desktop/) & [Docker File](https://hub.docker.com/repository/docker/clamshell6412/ecomerce_res_api/general) (production only)
18+
19+
- Or you can just install Node.js [v16.20.1](https://nodejs.org/download/release/latest-gallium/) ([or a compatible version](https://nodejs.org/es/download/releases)) on your system.
20+
- Clone the project repository using `git clone https://github.com/yamilt351/api-rest.git`
21+
- Install project dependencies using npm or yarn. Run `npm install` or `yarn install` in the project root directory.
1922
- Configure the environment variables required for the project.
2023

2124
```
@@ -31,11 +34,11 @@ PORT=3000
3134
```
3235

3336
```
34-
STRIPE_TOKEN=sk_text_z&&2DbCJa9d3gZkxFwJdE$&hHbRe47KHxAF%&N#qRVx*zVFG$W
37+
STRIPE_TOKEN=sk_text_YourStripeToken
3538
3639
```
3740

38-
- Start the application using the appropriate command. Run npm run dev or yarn run dev to launch the application.
41+
- Start the application using `npm run dev` or `yarn run dev` to launch the application.
3942
- Access the application in a web browser using the provided URL or port number.
4043

4144
# Available Endpoints
@@ -81,28 +84,31 @@ STRIPE_TOKEN=sk_text_z&&2DbCJa9d3gZkxFwJdE$&hHbRe47KHxAF%&N#qRVx*zVFG$W
8184
| Edit Status Purchase | `/api/purchases/status/:purchaseId` | Put |
8285
| Delete Purchase | `/api/purchases/:purchaseId` | Delete |
8386

84-
8587
[Postman Documentation](https://documenter.getpostman.com/view/21643141/2s93sXcaLf#31c36708-d610-4480-8c8a-628bb32dcfde)
8688

87-
| Comments Actions | Routes | Http Verb |
88-
| --------------------- | ---------------------- | --------- |
89-
| Create Purchase | `/api/comments/create` | Post |
90-
| Payment | `/api/comments/getAll` | Get |
91-
| Get Monthly Purchases | `/api/comments/delete` | Delete |
89+
| Comments Actions | Routes | Http Verb |
90+
| --------------------- | -------------------------------- | --------- |
91+
| Create Comments | `/api/comments/create/productId` | Post |
92+
| Get Products Comments | `/api/comments/getAll/productId` | Get |
93+
| Delete Comments | `/api/comments/delete/commentId` | Delete |
9294

9395
[Postman Documentation](https://documenter.getpostman.com/view/21643141/2s93sXcaLf#31c36708-d610-4480-8c8a-628bb32dcfde)
9496

95-
| Responses Actions | Routes | Http Verb |
96-
| --------------------- | ------------------------ | --------- |
97-
| Create Purchase | `/api/purchases/create` | Post |
98-
| Payment | `/api/purchases/payment` | Get |
99-
| Get Monthly Purchases | `/api/purchases/monthly` | Delete |
97+
| Responses Actions | Routes | Http Verb |
98+
| ---------------------- | --------------------------------- | --------- |
99+
| Create Responses | `/api/responses/create/commentId` | Post |
100+
| Get Comments Responses | `/api/responses/getAll/commentId` | Get |
101+
| Delete Responses | `/api/responses/responseId` | Delete |
100102

101103
[Postman Documentation](https://documenter.getpostman.com/view/21643141/2s93sXcaLf#31c36708-d610-4480-8c8a-628bb32dcfde)
102104

103105
## Tests
104106

107+
- The aplication was tested with [Jest](https://jestjs.io/) and [Supertest](https://www.npmjs.com/package/supertest)
108+
105109
```
106110
npm run test
107111
108112
```
113+
114+
# Contribution.

index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import cart from './server/Routes/shoppingCartRoutes.js';
77
import product from './server/Routes/productRoutes.js';
88
import purchase from './server/Routes/purchasesRoutes.js';
99
import comment from './server/Routes/commentsRoutes.js';
10+
import response from './server/Routes/responsesRoutes.js';
1011
import { errorHandler } from './server/helpers/errorHandler.js';
1112

1213
//config
@@ -20,7 +21,6 @@ export const JWT_TOKEN = process.env.JWT_TOKEN;
2021
const middlewares = await importMiddlewares();
2122

2223
middlewares.forEach((middleware) => {
23-
console.log(`Loading middleware /${middlewares.length}: ${middleware.name}`);
2424
app.use(middleware);
2525
});
2626

@@ -31,6 +31,7 @@ const apiRouthes = [
3131
{ route: '/api/purchases', controller: purchase },
3232
{ route: '/api/products', controller: product },
3333
{ route: '/api/comments', controller: comment },
34+
{ route: '/api/responses', controller: response },
3435
];
3536
for (const controller of apiRouthes) {
3637
app.use(controller.route, controller.controller);

server/Controllers/responsesController.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@ import isResourceOwner from '../helpers/isOwner.js';
55

66
const responseControllers = {
77
createResponse,
8-
deleteResponse,
8+
hideResponse,
99
getAllResponse,
1010
};
1111

1212
function createResponse(req, res, next) {
1313
responsesActions
14-
.createResponse(req.user.id, req.body)
14+
.createResponse(req.user.id, req.params.commentId, req.body.description)
1515
.then((response) => res.json(response))
1616
.catch((error) => next(error));
1717
}
1818

19-
function deleteResponse(req, res, next) {
19+
function hideResponse(req, res, next) {
2020
const isOwner = isResourceOwner(Response, req.params.responseId, req.user.id);
2121
if (isOwner) {
2222
responsesActions
23-
.deleteResponse(req.params.responseId)
23+
.hideResponse(req.params.responseId)
2424
.then((response) => res.json(response))
2525
.catch((error) => next(error));
2626
} else {

server/Models/commentModel.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ const CommentSchema = new mongoose.Schema(
1616
maxLength: 400,
1717
required: true,
1818
},
19+
hide: {
20+
type: Boolean,
21+
default: false,
22+
},
1923
},
2024
{ timestamps: true },
2125
);

server/Models/productModel.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ const ProductSchema = new mongoose.Schema(
4646
type: Boolean,
4747
default: false,
4848
},
49+
hide: {
50+
type: Boolean,
51+
default: false,
52+
},
4953
},
5054
{ timestamps: true },
5155
);

server/Models/responsesModel.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ const ResponsesSchema = new mongoose.Schema(
1717
maxLength: 400,
1818
required: true,
1919
},
20+
hide: {
21+
type: Boolean,
22+
default: false,
23+
},
2024
},
2125
{ timestamps: true },
2226
);

server/Models/userModel.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ const UserSchema = new mongoose.Schema(
3131
type: Boolean,
3232
default: false,
3333
},
34+
hide: {
35+
type: Boolean,
36+
default: false,
37+
},
3438
wishList: [
3539
{
3640
type: mongoose.Schema.Types.ObjectId,

server/Routes/productRoutes.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { caching } from '../helpers/cache.js';
66
import { cleanBody, validateQuery } from '../helpers/sanitizer.js';
77
const router = Router();
88

9-
router.get('/products', caching('10 minutes'), productController.getProduct);
9+
router.get('/', caching('10 minutes'), productController.getProduct);
1010

1111
router.get(
1212
'/tag',
@@ -24,11 +24,7 @@ router.get(
2424
productController.searchProduct,
2525
);
2626

27-
router.get(
28-
'/:id',
29-
caching('10 minutes'),
30-
productController.getProductById,
31-
);
27+
router.get('/:id', caching('10 minutes'), productController.getProductById);
3228

3329
router.post(
3430
'/create',

server/Routes/purchasesRoutes.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import authMiddleware from '../helpers/jwt.js';
44
import adminCheck from '../helpers/adminCheck.js';
55
const router = Router();
66

7-
router.post('/purchases/create', authMiddleware, purchaseController.createPurchase);
7+
router.post('/create', authMiddleware, purchaseController.createPurchase);
88

99
router.get(
1010
'/getAll',

server/Routes/responsesRoutes.js

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
11
import responseControllers from '../Controllers/responsesController.js';
22
import express from 'express';
3-
import cleanBody from '../helpers/sanitizer.js';
3+
import { cleanBody } from '../helpers/sanitizer.js';
44
import authMiddleware from '../helpers/jwt.js';
55
const router = express.Router();
66

77
router.post(
8-
'/create',
8+
'/create/:commentId',
99
authMiddleware,
1010
cleanBody,
1111
responseControllers.createResponse,
1212
);
13+
1314
router.delete(
14-
'/delete/:responsesId',
15+
'/delete/:responsesId',
1516
authMiddleware,
1617
responseControllers.deleteResponse,
1718
);
18-
router.get(
19-
'/getAll',
20-
authMiddleware,
21-
responseControllers.getAllResponse,
22-
);
19+
20+
router.get('/getAll', authMiddleware, responseControllers.getAllResponse);
2321

2422
export default router;

server/Service/commentService.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { NotFoundError } from '../helpers/errorHandler.js';
21
import Comment from '../Models/commentModel.js';
32

43
const commentService = {

server/Service/responsesService.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ async function deleteResponse(responseId) {
1818
return await Response.findByIdAndDelete(responseId);
1919
}
2020

21-
async function createResponse(userId, body) {
22-
const newResponse = new Response({ ...body, userId });
21+
async function createResponse(userId, description) {
22+
const newResponse = new Response({ description, userId });
2323
return await newResponse.save();
2424
}
2525

server/helpers/errorHandler.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,8 @@ class BadRequestError extends Error {
3232
function errorHandler(error, req, res, next) {
3333
if (error.statusCode) {
3434
res.status(error.statusCode).json({ error: error.message });
35-
} else {
36-
res.status(500).json({ error: error.message });
3735
}
36+
next();
3837
}
3938
export {
4039
errorHandler,

0 commit comments

Comments
 (0)