From 0a279af852d10ca15fcb710c7319328d2edf2aa5 Mon Sep 17 00:00:00 2001 From: "j.krol" Date: Sat, 25 Nov 2023 18:26:59 +0100 Subject: [PATCH] Format code with prettier --- .github/workflows/docker.yml | 50 ++++++------ backend/src/data/users.ts | 2 +- backend/src/dtos/createMeeting.ts | 6 +- backend/src/httpServer.ts | 85 ++++++++++++--------- backend/src/index.ts | 2 +- backend/src/misc/jwt.ts | 7 +- backend/src/models/User.ts | 2 +- backend/src/server.ts | 22 +++--- backend/src/socketServer.ts | 19 +++-- compose.yml | 2 +- frontend/src/components/ProfilePageForm.tsx | 14 +++- frontend/src/pages/ProfilePage.tsx | 8 +- frontend/src/services/data.ts | 20 +++-- frontend/src/services/meeting.ts | 40 +++++----- frontend/src/webSocket/socketConnection.ts | 26 +++---- package-lock.json | 1 - 16 files changed, 165 insertions(+), 141 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index d458be64..ba78fc28 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -14,30 +14,30 @@ jobs: contents: write steps: - - uses: actions/checkout@v3 - with: + - uses: actions/checkout@v3 + with: ref: ${{ github.ref }} - - uses: isbang/compose-action@v1.5.1 - with: - compose-file: "compose.yml" - - - name: Wait for containers to start - run: | - sleep 18 - docker run \ - --rm \ - --network mercury-project_default \ - alpine/curl -o /dev/null --retry 3 --retry-connrefused backend:5000 - - - name: Test the backend - run: cd backend; npm i && npm run test run - - - name: Format files - run: cd ..; npm i && npm run prettier:fix - - - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: Apply formatting changes - branch: ${{ github.head_ref }} + - uses: isbang/compose-action@v1.5.1 + with: + compose-file: "compose.yml" + + - name: Wait for containers to start + run: | + sleep 18 + docker run \ + --rm \ + --network mercury-project_default \ + alpine/curl -o /dev/null --retry 3 --retry-connrefused backend:5000 + + - name: Test the backend + run: cd backend; npm i && npm run test run + + - name: Format files + run: cd ..; npm i && npm run prettier:fix + + - name: Commit changes + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: Apply formatting changes + branch: ${{ github.head_ref }} diff --git a/backend/src/data/users.ts b/backend/src/data/users.ts index 27e42688..ed939a6d 100644 --- a/backend/src/data/users.ts +++ b/backend/src/data/users.ts @@ -83,4 +83,4 @@ const userData = [ }, ]; -export default userData; \ No newline at end of file +export default userData; diff --git a/backend/src/dtos/createMeeting.ts b/backend/src/dtos/createMeeting.ts index 4e5c33e9..a4976161 100644 --- a/backend/src/dtos/createMeeting.ts +++ b/backend/src/dtos/createMeeting.ts @@ -1,4 +1,4 @@ export default interface CreateMeetingDto { - ownerId: string; - guestId: string; -} \ No newline at end of file + ownerId: string; + guestId: string; +} diff --git a/backend/src/httpServer.ts b/backend/src/httpServer.ts index 63d4ac10..0b13f724 100644 --- a/backend/src/httpServer.ts +++ b/backend/src/httpServer.ts @@ -1,5 +1,5 @@ import { sign, verify } from "jsonwebtoken"; -import {v4} from "uuid"; +import { v4 } from "uuid"; import dotenv from "dotenv"; import servers from "./server"; import driver from "./driver/driver"; @@ -8,7 +8,7 @@ import authRouter from "./routes/authRoute"; import importInitialData from "./data/importData"; import CreateMeetingDto from "./dtos/createMeeting"; -const {app} = servers; +const { app } = servers; dotenv.config(); const linkSecret = process.env.LINK_SECRET; @@ -19,52 +19,65 @@ app.use("/users", usersRouter); app.use("/auth", authRouter); app.post("/meeting", async (req, res) => { - try { - const {ownerId, guestId} = req.body as CreateMeetingDto; - const meetingId = v4(); - const session = driver.session(); - const newMeetingRequest = await session.run(` + try { + const { ownerId, guestId } = req.body as CreateMeetingDto; + const meetingId = v4(); + const session = driver.session(); + const newMeetingRequest = await session.run( + ` MATCH (u1:User) WHERE u1.id=$ownerId MATCH (u2:User) WHERE u2.id=$guestId MATCH (u1)-[:IS_FRIENDS_WITH]-(u2) WHERE NOT (u1)-[:MEETING]-(u2) CREATE (u1)-[m:MEETING {meetingId: $meetingId}]->(u2) RETURN m - `, {ownerId, guestId, meetingId}); - await session.close(); - if (newMeetingRequest.records.length === 0) { - return res.status(404).json({ status: "error", errors: {message: "Cannot create new meeting"} }); - } - const token = sign({ownerId, guestId, meetingId}, linkSecret!); - return res.json({token}); - } catch (err) { - console.log("Error:", err); - return res.status(404).json({ status: "error", errors: err as object }); + `, + { ownerId, guestId, meetingId }, + ); + await session.close(); + if (newMeetingRequest.records.length === 0) { + return res + .status(404) + .json({ + status: "error", + errors: { message: "Cannot create new meeting" }, + }); } + const token = sign({ ownerId, guestId, meetingId }, linkSecret!); + return res.json({ token }); + } catch (err) { + console.log("Error:", err); + return res.status(404).json({ status: "error", errors: err as object }); + } }); app.post("/decode", (req, res) => { - const {token} = req.body as {token: string}; - const decodedData = verify(token, linkSecret!); - return res.json({decodedData}); + const { token } = req.body as { token: string }; + const decodedData = verify(token, linkSecret!); + return res.json({ decodedData }); }); app.get("/guest-token/:guestId", async (req, res) => { - try { - const guestId = req.params.guestId; - const session = driver.session(); - const guestRequest = await session.run(` + try { + const guestId = req.params.guestId; + const session = driver.session(); + const guestRequest = await session.run( + ` MATCH (u:User) WHERE u.id=$guestId RETURN u - `,{guestId}); - await session.close(); - if (guestRequest.records.length === 0) { - return res.status(404).json({ status: "error", errors: {message: "User does not exist"} }); - } - const guest = guestRequest.records[0].get(0).properties; - const token = sign(guest, linkSecret!); - return res.json({token}); - } catch (err) { - console.log("Error:", err); - return res.status(404).json({ status: "error", errors: err as object }); + `, + { guestId }, + ); + await session.close(); + if (guestRequest.records.length === 0) { + return res + .status(404) + .json({ status: "error", errors: { message: "User does not exist" } }); } -}); \ No newline at end of file + const guest = guestRequest.records[0].get(0).properties; + const token = sign(guest, linkSecret!); + return res.json({ token }); + } catch (err) { + console.log("Error:", err); + return res.status(404).json({ status: "error", errors: err as object }); + } +}); diff --git a/backend/src/index.ts b/backend/src/index.ts index 05d5d5bd..1185fadc 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -1,2 +1,2 @@ import "./httpServer"; -import "./socketServer"; \ No newline at end of file +import "./socketServer"; diff --git a/backend/src/misc/jwt.ts b/backend/src/misc/jwt.ts index 7da3d935..6cec57db 100644 --- a/backend/src/misc/jwt.ts +++ b/backend/src/misc/jwt.ts @@ -36,11 +36,14 @@ export async function authenticateToken( } } -export async function decodeSocketData(handshakeData: string, linkSecret:string) { +export async function decodeSocketData( + handshakeData: string, + linkSecret: string, +) { try { const decodedData = jwt.verify(handshakeData, linkSecret); return decodedData; } catch (_e) { return null; } -} \ No newline at end of file +} diff --git a/backend/src/models/User.ts b/backend/src/models/User.ts index a9c2ae22..2dd85c96 100644 --- a/backend/src/models/User.ts +++ b/backend/src/models/User.ts @@ -9,4 +9,4 @@ export default interface User { password: string; friend_ids?: number[]; chats?: Chat[]; -} \ No newline at end of file +} diff --git a/backend/src/server.ts b/backend/src/server.ts index 91a342ac..6ac5a0de 100644 --- a/backend/src/server.ts +++ b/backend/src/server.ts @@ -1,4 +1,4 @@ -import express, {Express} from "express"; +import express, { Express } from "express"; import dotenv from "dotenv"; import cors from "cors"; import { Server as SocketServer } from "socket.io"; @@ -8,8 +8,8 @@ import cookieParser from "cookie-parser"; dotenv.config(); const corsOptions = { - origin: ["http://localhost:5000", "http://localhost:5173"], - optionsSuccessStatus: 200, + origin: ["http://localhost:5000", "http://localhost:5173"], + optionsSuccessStatus: 200, }; const app: Express = express(); @@ -17,16 +17,20 @@ const port: number = 5000; app.use(cors(corsOptions)); app.use((_req, res, next) => { - res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE"); - res.header("Access-Control-Allow-Headers", "Content-Type"); - next(); + res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE"); + res.header("Access-Control-Allow-Headers", "Content-Type"); + next(); }); app.use(cookieParser()); app.use(express.json()); const expressServer = createServer(app); -const io = new SocketServer(expressServer, {cors: {origin: ["http://localhost:5173"]}}); +const io = new SocketServer(expressServer, { + cors: { origin: ["http://localhost:5173"] }, +}); -expressServer.listen(port, () => console.log(`HTTP server running on port ${port}`)); +expressServer.listen(port, () => + console.log(`HTTP server running on port ${port}`), +); -export default {expressServer, io, app} \ No newline at end of file +export default { expressServer, io, app }; diff --git a/backend/src/socketServer.ts b/backend/src/socketServer.ts index f32941ee..2353eb57 100644 --- a/backend/src/socketServer.ts +++ b/backend/src/socketServer.ts @@ -1,18 +1,17 @@ import servers from "./server"; import dotenv from "dotenv"; import { Socket } from "socket.io"; -import {decodeSocketData} from "./misc/jwt"; -const {io, app} = servers; +import { decodeSocketData } from "./misc/jwt"; +const { io, app } = servers; dotenv.config(); const linkSecret = process.env.LINK_SECRET; io.on("connection", (socket: Socket) => { - const handshakeData = socket.handshake.auth.jwt; - const decodedData = decodeSocketData(handshakeData, linkSecret!); - if (!decodedData) { - socket.disconnect(); - return; - } - -}); \ No newline at end of file + const handshakeData = socket.handshake.auth.jwt; + const decodedData = decodeSocketData(handshakeData, linkSecret!); + if (!decodedData) { + socket.disconnect(); + return; + } +}); diff --git a/compose.yml b/compose.yml index 19e7279f..bc34700a 100644 --- a/compose.yml +++ b/compose.yml @@ -16,7 +16,7 @@ services: build: ./frontend ports: - 5173:80 - + backend: build: ./backend env_file: diff --git a/frontend/src/components/ProfilePageForm.tsx b/frontend/src/components/ProfilePageForm.tsx index a57863d6..f949e7ae 100644 --- a/frontend/src/components/ProfilePageForm.tsx +++ b/frontend/src/components/ProfilePageForm.tsx @@ -94,10 +94,16 @@ function ProfilePageForm(props: ProfilePageFormProps) {

diff --git a/frontend/src/pages/ProfilePage.tsx b/frontend/src/pages/ProfilePage.tsx index 4d6092b2..d27ee273 100644 --- a/frontend/src/pages/ProfilePage.tsx +++ b/frontend/src/pages/ProfilePage.tsx @@ -38,9 +38,13 @@ function ProfilePage() { useEffect(() => { const fetchFriends = async () => { - const friendsResponse = await dataService.fetchData(`/users/${userId}/friends`,"GET",{}); + const friendsResponse = await dataService.fetchData( + `/users/${userId}/friends`, + "GET", + {}, + ); setFriends(friendsResponse.friends); - } + }; fetchFriends(); }, []); diff --git a/frontend/src/services/data.ts b/frontend/src/services/data.ts index f70f3cca..113b1470 100644 --- a/frontend/src/services/data.ts +++ b/frontend/src/services/data.ts @@ -1,18 +1,16 @@ class DataService { - private url: string = "http://localhost:5000"; - + async fetchData(endpoint: string, method: string, options = {}) { - try { - const response = await fetch(this.url + endpoint, { ...options, method }); - const data = await response.json(); - return data; - } catch (error) { - console.error("Error ocurred during fetch data:", error); - throw error; - } + try { + const response = await fetch(this.url + endpoint, { ...options, method }); + const data = await response.json(); + return data; + } catch (error) { + console.error("Error ocurred during fetch data:", error); + throw error; + } } - } export default new DataService(); diff --git a/frontend/src/services/meeting.ts b/frontend/src/services/meeting.ts index 5d545121..4a7a1904 100644 --- a/frontend/src/services/meeting.ts +++ b/frontend/src/services/meeting.ts @@ -1,26 +1,24 @@ class MeetingService { - - private url: string = "http://localhost:5000"; + private url: string = "http://localhost:5000"; - async createMeetingWithToken(ownerId: string, guestId: string) { - const endpoint = this.url + "/meeting" - try { - const response = await fetch(endpoint, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ ownerId, guestId }), - }); - const data = await response.json(); - const {token} = data; - return token; - } catch (error) { - console.error("Error ocurred during fetch data:", error); - throw error; - } + async createMeetingWithToken(ownerId: string, guestId: string) { + const endpoint = this.url + "/meeting"; + try { + const response = await fetch(endpoint, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ ownerId, guestId }), + }); + const data = await response.json(); + const { token } = data; + return token; + } catch (error) { + console.error("Error ocurred during fetch data:", error); + throw error; } - + } } -export default new MeetingService(); \ No newline at end of file +export default new MeetingService(); diff --git a/frontend/src/webSocket/socketConnection.ts b/frontend/src/webSocket/socketConnection.ts index 3856b8d0..b6c89a39 100644 --- a/frontend/src/webSocket/socketConnection.ts +++ b/frontend/src/webSocket/socketConnection.ts @@ -1,17 +1,17 @@ import { io, Socket } from "socket.io-client"; let socket: Socket; -const socketConnection = (jwt: string)=>{ - if(socket && socket.connected){ - return socket; - }else{ - socket = io('http://localhost:5000',{ - auth: { - jwt - } - }); - return socket; - } -} +const socketConnection = (jwt: string) => { + if (socket && socket.connected) { + return socket; + } else { + socket = io("http://localhost:5000", { + auth: { + jwt, + }, + }); + return socket; + } +}; -export default socketConnection; \ No newline at end of file +export default socketConnection; diff --git a/package-lock.json b/package-lock.json index 68463422..3969da7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,6 @@ "": { "name": "mercury-project", "version": "1.0.0", - "license": "ISC", "dependencies": { "prettier": "^3.1.0" }