Merge remote-tracking branch 'origin/apommier' into ereali

This commit is contained in:
Lara REALI 2023-06-24 20:18:46 +02:00
commit cf0edf5bc0
12 changed files with 68 additions and 64 deletions

6
.env
View File

@ -12,15 +12,9 @@
#URL #URL
NGINX_ENVSUBST_TEMPLATE_SUFFIX=".conf" NGINX_ENVSUBST_TEMPLATE_SUFFIX=".conf"
# BASE_URL=http://localhost
# SOCKET_URL=bess-f2r2s16:8080
BASE_URL=bess-f2r2s16:8080 BASE_URL=bess-f2r2s16:8080
REACT_APP_BASE_URL=bess-f2r2s16:8080 REACT_APP_BASE_URL=bess-f2r2s16:8080
REDIRECT_URI=http://bess-f2r2s16:8080/api/auth/login REDIRECT_URI=http://bess-f2r2s16:8080/api/auth/login
#postgres var
# POSTGRES_HOST=127.0.0.1
# DB_TYPE=postgres
POSTGRES_HOST=postgresql POSTGRES_HOST=postgresql
POSTGRES_USER=postgres POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres POSTGRES_PASSWORD=postgres

3
.gitignore vendored
View File

@ -1,4 +1,5 @@
#.env .env
containers/react/.env
backend/node_modules/ backend/node_modules/
containers/backend/dist/ containers/backend/dist/

View File

@ -1,23 +0,0 @@
server {
# listen 443 ssl;
# listen 80 ssl;
# listen 443 ssl;
# listen ${NGINX_PORT};
listen 8080;
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://react_app:8081;
}
location /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://api:3000/api;
}
}

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/06/17 01:00:25 by apommier #+# #+# */ /* Created: 2023/06/17 01:00:25 by apommier #+# #+# */
/* Updated: 2023/06/23 19:37:41 by apommier ### ########.fr */ /* Updated: 2023/06/24 18:47:59 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View File

@ -82,7 +82,7 @@ export class User {
} }
@Entity() @Entity({name: 'MatchLog' })
export class MatchLog { export class MatchLog {
@PrimaryGeneratedColumn() @PrimaryGeneratedColumn()
id: number; id: number;

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/06/17 01:00:07 by apommier #+# #+# */ /* Created: 2023/06/17 01:00:07 by apommier #+# #+# */
/* Updated: 2023/06/23 22:27:16 by apommier ### ########.fr */ /* Updated: 2023/06/24 19:29:33 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -75,8 +75,10 @@ export class UsersService {
user.friendRequest = user.friendRequest || []; user.friendRequest = user.friendRequest || [];
if (user.friendRequest.find(item => item === username)) if (user.friendRequest.find(item => item === username))
return (1); return (1);
if (user.friends.find(item => item === username))
return (1);
user.friendRequest.push(username); user.friendRequest.push(username);
this.save(user); this.save(user);
return (1); return (1);
} }
@ -99,13 +101,20 @@ export class UsersService {
async getHistory(username: string) { async getHistory(username: string) {
const user = await this.findOne(username); const user = await this.findOne(username);
if (user) { if (user)
const children = user.children; {
console.log(user);
console.log(user.children); // or perform any operations with the children // const ret = await this.matchRepository.query("SELECT * FROM \"MatchLog\" WHERE id = ($1);", [user.id]);
return children; const ret = await this.matchRepository.query("SELECT * FROM \"MatchLog\"");
console.log("all match= ", ret);
} }
// const children = user.children;
// console.log(user);
// console.log(user.children); // or perform any operations with the children
// return children;
// }
} }
async addFriend(user: User, username: string) { async addFriend(user: User, username: string) {
@ -122,6 +131,7 @@ export class UsersService {
} }
user.friends.push(username); user.friends.push(username);
user.friendRequest = user.friendRequest.filter((item) => item !== username); user.friendRequest = user.friendRequest.filter((item) => item !== username);
user2.friends = user2.friends || [];
user2.friends.push(user.username); user2.friends.push(user.username);
this.save(user2); this.save(user2);
this.save(user); this.save(user);

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/06/19 15:18:38 by apommier #+# #+# */ /* Created: 2023/06/19 15:18:38 by apommier #+# #+# */
/* Updated: 2023/06/24 00:43:19 by apommier ### ########.fr */ /* Updated: 2023/06/24 17:20:24 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -167,8 +167,9 @@ addMatchmaking(client: Socket, payload: any): void {
player.join(gameId); player.join(gameId);
console.log(`Player ${player.id} joined game ${gameId}`); console.log(`Player ${player.id} joined game ${gameId}`);
}); });
payload.gameId = gameId;
players.forEach((player) => { players.forEach((player) => {
player.emit('pong:gameId', gameId); player.emit('pong:gameId', payload);
}); });
} }
@ -202,8 +203,8 @@ joinPrivateParty(client: Socket, payload: any): void {
{ {
game.push(client); game.push(client);
const playersIds = game.map(socket => socket.id); const playersIds = game.map(socket => socket.id);
this.clients[playersIds[0]].emit('pong:gameId', payload.gameId); this.clients[playersIds[0]].emit('pong:gameId', payload);
this.clients[playersIds[1]].emit('pong:gameId', payload.gameId); this.clients[playersIds[1]].emit('pong:gameId', payload);
} }
else else
{ {
@ -367,11 +368,11 @@ addPrivateParty(client: Socket, payload: any): void {
if (playersIds[0] === payload.id) if (playersIds[0] === payload.id)
{ {
this.clients[playersIds[1]].emit('pong:name', payload.name); this.clients[playersIds[1]].emit('pong:name', payload);
} }
if (playersIds[1] === payload.id) if (playersIds[1] === payload.id)
{ {
this.clients[playersIds[0]].emit('pong:name', payload.name); this.clients[playersIds[0]].emit('pong:name', payload);
} }
} }

View File

@ -21,18 +21,15 @@ function Ranking(){
// setFriends(tmpFriends.data); // setFriends(tmpFriends.data);
// return tmpUser; // return tmpUser;
// console.log(`user= ${tmpUser.data.username}`); // console.log(`user= ${tmpUser.data.username}`);
setIsLoading(false) setIsLoading(false);
} }
catch(err){ catch(err){
console.log(err); console.log(err);
} }
}; };
getRanking(); getRanking();
}, []);
}, []) console.log(`ranking after= ${ranking}`);
console.log(`ranking after= ${ranking}`)
return ( return (
<div> <div>

View File

@ -3,10 +3,10 @@
/* ::: :::::::: */ /* ::: :::::::: */
/* Message.tsx :+: :+: :+: */ /* Message.tsx :+: :+: :+: */
/* +:+ +:+ +:+ */ /* +:+ +:+ +:+ */
/* By: sadjigui <sadjigui@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/06/01 18:24:46 by apommier #+# #+# */ /* Created: 2023/06/01 18:24:46 by apommier #+# #+# */
/* Updated: 2023/06/24 15:10:21 by sadjigui ### ########.fr */ /* Updated: 2023/06/24 16:00:48 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View File

@ -170,7 +170,9 @@ socket.on('pong:privateId', async (data) => {
socket.on('pong:gameId', async (data) => { socket.on('pong:gameId', async (data) => {
console.log("gameId received"); console.log("gameId received");
gameId = data; gameId = data.gameId;
console.log("gameid = ", gameId);
console.log("data gameid = ", data);
try { try {
let response = await api.get('/profile'); let response = await api.get('/profile');
@ -190,6 +192,16 @@ socket.on('pong:gameId', async (data) => {
console.log("emit to name"); console.log("emit to name");
socket.emit('pong:name', info); socket.emit('pong:name', info);
if (data.id === myId)
{
console.log("myId= true")
vX = 0.0001;
}
else
{
console.log("myId= false")
vX = -0.0001;
}
} catch (error) { } catch (error) {
console.log(error); console.log(error);
// Handle error here // Handle error here
@ -198,7 +210,11 @@ socket.on('pong:gameId', async (data) => {
}); });
socket.on('pong:name', (data) => { socket.on('pong:name', (data) => {
opName = data; opName = data.name;
// if (data.myId === myId)
// vX = 0.0001;
// else
// vX = -0.0001;
console.log(`opponent Name= ${opName}`) console.log(`opponent Name= ${opName}`)
}); });
@ -222,7 +238,6 @@ socket.on('pong:info', (data) => {
vY = data.vY; vY = data.vY;
}); });
socket.on('pong:paddle', (data) => { socket.on('pong:paddle', (data) => {
console.log("paddle info receive") console.log("paddle info receive")
oPaddleY = (data.paddleY / data.height) * canvas.height oPaddleY = (data.paddleY / data.height) * canvas.height
@ -251,7 +266,7 @@ socket.on('pong:point', (data) => {
// console.log("up point"); // console.log("up point");
myScore = data.point; myScore = data.point;
// } // }
vX = 0.0001; vX = -0.0001;
vY = 0; vY = 0;
ballX = canvas.width / 2; ballX = canvas.width / 2;
ballY = canvas.height / 2; ballY = canvas.height / 2;
@ -265,7 +280,7 @@ socket.on('pong:hisPoint', (data) => {
// console.log("up point"); // console.log("up point");
hisScore = data.point; hisScore = data.point;
// } // }
vX = 0.0001; vX = -0.0001;
vY = 0; vY = 0;
ballX = canvas.width / 2; ballX = canvas.width / 2;
ballY = canvas.height / 2; ballY = canvas.height / 2;
@ -338,6 +353,7 @@ socket.on('pong:hisPoint', (data) => {
point: hisScore, point: hisScore,
} }
socket.emit('pong:point', info); socket.emit('pong:point', info);
vX = 0.0001;
} }
function send_my_point() function send_my_point()
@ -740,9 +756,8 @@ async function draw(timestamp: number)
vX -= 0.0001; vX -= 0.0001;
} }
send_forced_info(); send_forced_info();
// console.log(`vx = ${vX}`);
} }
else if (event.code === "KeyR") else if (event.code === "KeyW")
{ {
if (!superpowerModifier) if (!superpowerModifier)
return ; return ;
@ -755,6 +770,13 @@ async function draw(timestamp: number)
paddleY = canvas.height / 2 - paddleHeight / 2; paddleY = canvas.height / 2 - paddleHeight / 2;
console.log('Cinq secondes se sont écoulées.'); console.log('Cinq secondes se sont écoulées.');
}, 5000); }, 5000);
// setTimeout(() => {
// // code à exécuter après 5 secondes
// paddleHeight = canvas.height * 0.25;
// paddleY = canvas.height / 2 - paddleHeight / 2;
// console.log('Cinq secondes se sont écoulées.');
// }, 5000);
} }
}); });

View File

@ -23,6 +23,8 @@
} }
.profilePic{ .profilePic{
margin-left: 10px;
/* margin-top: 10px; */
height: 30px; height: 30px;
width: 30px; width: 30px;
border-radius: 50%; border-radius: 50%;

View File

@ -1,4 +1,4 @@
version: "3.3" version: "3.3"
services: services:
@ -24,7 +24,7 @@ services:
# depends_on: # depends_on:
# - nginx # - nginx
ports: ports:
- 8081:8081 - 8001:8001
volumes: volumes:
- ./containers/react:/app - ./containers/react:/app
# - ./containers/react:/app # - ./containers/react:/app
@ -115,4 +115,4 @@ volumes:
# o: 'bind' # o: 'bind'
# device: '/backend' # device: '/backend'
db: db:
driver: local driver: local