Skip to content

Commit

Permalink
v0.5.6 fix: arreglado error al obtener la frase con 4 personajes, cor…
Browse files Browse the repository at this point in the history
…recciones con nombres de personajes, agregados tests al ejecutar npm run dev, modificacion de tokens, mas cambios en el changelog.
  • Loading branch information
TomasS-R committed Oct 11, 2024
1 parent 8041478 commit aa09f8c
Show file tree
Hide file tree
Showing 16 changed files with 258 additions and 171 deletions.
19 changes: 19 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Changelog

## Version 0.5.6: - 2024-10-11 -

### Agregado:
- Dependencia swagger-themes para personalizar la documentacion de swagger (modo oscuro y mas temas) en [swaggerDocs](./src/routes/swaggerDocs.js)

### Modificado:
- Agregados mas detalles al momento de hacer deploy y ver en la consola/terminal en [app](./src/app.js)
- Exportada y acortada la routeapi del archivo [routes](./src/routes/routes.js)
- Se mejoro la ruta "home" para que muestre correctamente la url segun el entorno de desarrollo en [routes](./src/routes/routes.js)
- [docker-compose](./docker-compose.yml) mejorado
- Se arreglo un bug que al consultar la frase y personajes devolvia siempre los mismos 3 personajes erroneos, ahora obtiene 10 personajes y de esos 10 obtiene 3 como incorrectos en el archvio [queries](./src/dbFiles/queries.js)
- Corregida la identacion del archivo [triviaControllers](./src/controllers/triviaControllers.js)
- Arreglados los nombres de algunos personajes en [characters_simpsons](./src/scrapQuotes/characters_simpson.csv)
- Al ejecutar el comando npm run dev se modifico para que antes de ejecutar la api se realicen los tests correspondientes en [package](./package.json)
- Todos los usuarios al registrarse/logearse recibiran un token, esta modificacion fue realizada en [login](./src/account/login.js) y [register](./src/account/register.js)

### Obsoleto:
- Se retiro la implementacion del deploy en render y se transfirio definitivamente a flyio en [workflows](.github/workflows/node.js.yml)

## Version 0.5.5: - 2024-10-05 -

### Agregado:
Expand Down
32 changes: 19 additions & 13 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,23 @@ services:
env_file:
- .env
restart: unless-stopped
# networks: Los contenedores que pertenecen a esa red pueden comunicarse entre sí, mientras que los contenedores que no están en la misma red no pueden hacerlo.
# Esto proporciona un nivel de aislamiento y seguridad.
networks:
- app-network

# dev:
# build:
# context: .
# target: dev
# ports:
# - "3000:3000"
# environment:
# - NODE_ENV=development
# env_file:
# - .env
# volumes:
# - ./src:/app/src
# command: npm run dev
dev:
build:
context: .
target: dev
ports:
- "3000:3000"
environment:
- NODE_ENV=development
env_file:
- .env
volumes:
- ./src:/app/src
command: npm run dev
networks:
- app-network
11 changes: 9 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"name": "proyecto-devops",
"version": "0.5.5",
"version": "0.5.6",
"description": "Proyecto universitario para devops",
"main": "../src/routes/routes.js",
"scripts": {
"test": "jest",
"dev": "nodemon --env-file=.env src/app.js",
"dev": "npm run test && nodemon --env-file=.env src/app.js",
"lint": "eslint . --max-warnings 0",
"start": "node src/app.js"
},
Expand All @@ -25,6 +25,7 @@
"passport-jwt": "^4.0.1",
"passport-local": "^1.0.0",
"pg": "^8.12.0",
"swagger-themes": "^1.4.3",
"swagger-ui-express": "^5.0.1",
"yamljs": "^0.3.0"
},
Expand Down
11 changes: 6 additions & 5 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
[![Actions](https://img.shields.io/static/v1?style=for-the-badge&message=Actions&color=555&logo=githubactions&logoColor=3333&label=)](https://docs.github.com/en/actions)
[![Supabase](https://img.shields.io/static/v1?style=for-the-badge&message=Supabase&color=555&logo=supabase&logoColor=3333&label=)](https://supabase.com/)
[![Render](https://img.shields.io/static/v1?style=for-the-badge&message=Render&color=555&logo=Render&logoColor=3333&label=)](https://render.com/)
[![Flyio](https://img.shields.io/static/v1?style=for-the-badge&message=Fly.io&color=555&logo=Fly.io&logoColor=3333&label=)](https://Fly.io/)
[![Docker](https://img.shields.io/static/v1?style=for-the-badge&message=Docker&color=555&logo=Docker&logoColor=3333&label=)](https://docker.com/)
[![Sentry](https://img.shields.io/static/v1?style=for-the-badge&message=Sentry&color=555&logo=Sentry&logoColor=3333&label=)](https://sentry.com/)
[![Grafana](https://img.shields.io/static/v1?style=for-the-badge&message=Grafana&color=555&logo=Grafana&logoColor=3333&label=)](https://grafana.com/)
Expand Down Expand Up @@ -64,7 +65,7 @@

- **Testing:** Jest

- **Host:** Render
- **Host:** Flyio

- **Documentacion:** Swagger

Expand Down Expand Up @@ -148,7 +149,7 @@ Variables de entorno para la conexion con postgress
<summary><h3>Host</h3> <h5>(donde se aloja la aplicacion)</h5></summary>

> [!NOTE]
> Por defecto tiene 'localhost:' debes cambiarlo al subirlo a la nube
> Por defecto tiene 'localhost:' debes cambiarlo al subirlo a la nube o puedes dejarlo vacio como en mi caso
`HOST`

Expand Down Expand Up @@ -176,7 +177,7 @@ Variables de entorno para la conexion con postgress
<summary><h3>URLHOST</h3></h3> <h5>(la url donde esta tu proyecto alojado)</h5></summary>

> [!NOTE]
> En mi caso lo coloque en render por lo que estara apuntando a https://simpsons-trivia.onrender.com pero debes colocar el tuyo segun la url que te entregue el proveedor.
> En mi caso lo coloque en flyio por lo que estara apuntando a simpsons-trivia.fly.dev pero debes colocar el tuyo segun la url que te entregue el proveedor.
`URLHOST=`

Expand Down Expand Up @@ -240,7 +241,7 @@ npm run lint
📂 PROYECTO-DEVOPS
├── 📂.github
│ └── 📂 workflows # Contiene los archivos de CI/CD para GitHub Actions
│ ├── node.js.yml # Pipeline de CI y CD para la construccion, subida a docker hub y el deploy en render
│ ├── node.js.yml # Pipeline de CI y CD para la construccion, subida a docker hub y el deploy en flyio o render
│ └── release.yml # Archvio que se encarga de hacer un release automatico en github
├── 📂 media # Contiene imagenes para el readme
Expand Down Expand Up @@ -298,7 +299,7 @@ npm run lint

<div align= "center" >

<div align="center"><img src="./media/esqSimpsonsApi.svg" width="1000" height="600"></div>
<div align="center"><img src="./media/esqSimpsonsApi.svg" width="1000" height="400"></div>

</div>

Expand Down
7 changes: 2 additions & 5 deletions src/account/login.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,15 @@ async function loginUser(req, res, next) {

const responseData = {
success: true,
token: token,
user: {
id: user.id,
email: user.email,
username: user.username,
role: user.role
}
},
};

if (user.role === 'admin') {
responseData.token = token;
}

return res.status(200).json(responseData)
});
})(req, res, next);
Expand Down
9 changes: 8 additions & 1 deletion src/account/register.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const bcryptjs = require('bcryptjs');
//const jwt = require('jsonwebtoken');
const jwt = require('jsonwebtoken');
const queries = require('../dbFiles/queries');

// Funcion para registrar un usuario
Expand All @@ -21,8 +21,15 @@ async function registerUser (username, email, password, role = 'user', res) {
const result = await queries.createUser(username, email, hashedPassword, role, created_at);
const user = result.rows[0];

const token = jwt.sign(
{ id: result.id, email: result.email, role: result.role },
process.env.JWT_SECRET,
{ expiresIn: '1h' }
);

res.status(201).json({
success: true,
token: token,
data: {
id: user.id,
username: user.username,
Expand Down
12 changes: 10 additions & 2 deletions src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ const userTables = require('./dbFiles/creatingTables/userTables');
const express = require('express');
const cors = require('cors');
const passport = require('passport');
const { setupRoutesV1 } = require('../src/routes/routes');
const { setupRoutesV1, routeapi } = require('../src/routes/routes');
const securityRoutes = require('../src/routes/securityRoutes');
const sentryConfig = require('./monitoring/sentryConfig');

const app = express();
// Configura la aplicación para que confíe en el encabezado X-Forwarded-For establecido por el proxy.
app.set('trust proxy', 1);

// Inicializa Sentry
Expand All @@ -24,7 +25,7 @@ app.use(cors({
callback(new Error('Not allowed by CORS'));
}
},
methods: ['GET', 'POST', 'PUT', 'DELETE'],
methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],
allowedHeaders: ['Origin', 'X-Requested-With', 'Content-Type', 'Accept']
}));
app.use(express.json());
Expand All @@ -47,6 +48,7 @@ const RESET = '\x1b[0m';
const RED = '\x1b[31m';
const GREEN = '\x1b[32m';
const YELLOW = '\x1b[33m';
const BLUE = '\x1b[96m';
const BOLD = '\x1b[1m';

// Verifica si la conexión a postgres está habilitada
Expand Down Expand Up @@ -82,6 +84,11 @@ async function configureApp() {
if (isProduction) {
console.log(`${RED}${BOLD}⚠️ Advertencia: ¡Estás en modo producción!${RESET}`);
app.listen(PORT, () => console.log(`${GREEN}${BOLD}🚀 Servidor en producción corriendo en el puerto: ${PORT}!`));
if (hostname == undefined){
console.log(`${YELLOW}${BOLD} ❗ Configura la variable de entorno *URLHOST* en tu host para poder ver la ruta de desplegue.${RESET}`);
} else {
console.log(`${BLUE}${BOLD} 🌐 Puedes acceder a traves de https://${hostname}${routeapi} ${RESET}`);
}
} else {
console.log(`${GREEN}${BOLD}🔧 Estás en modo desarrollo.${RESET}`);
app.listen(PORT, () => console.log(`${GREEN}${BOLD}🚀 Servidor de desarrollo corriendo en: http://${HOST}:${PORT}${RESET}`));
Expand All @@ -101,4 +108,5 @@ process.on('SIGINT', () => {

module.exports = {
app,
isProduction
};
Loading

0 comments on commit aa09f8c

Please sign in to comment.