added getContact query

This commit is contained in:
slawk0
2024-10-12 21:20:45 +02:00
parent 8414919ae6
commit 8131cc6fb1
5 changed files with 33 additions and 25 deletions

View File

@@ -1,4 +1,4 @@
import { io } from "socket.io-client";
import io from "socket.io-client";
import Cookie from "js-cookie";
const socket = io({
auth: {

View File

@@ -19,6 +19,7 @@ function verifyJwtToken(token) {
const decoded = jwt.verify(token, jwtSecret);
return { username: decoded.username };
} catch (e) {
console.error(e);
return { errorMessage: e.message }; // Sending message to client because it's not backend error (in most cases i guess) so
}
}

View File

@@ -43,10 +43,9 @@ async function createTables() {
try {
await client.query(`
CREATE TABLE IF NOT EXISTS messages (
sender_id VARCHAR(128),
receiver_id VARCHAR(128),
sender VARCHAR(128),
recipient VARCHAR(128),
message VARCHAR(500),
created_at VARCHAR(100),
message_id SERIAL PRIMARY KEY
);
`);
@@ -57,7 +56,7 @@ async function createTables() {
await client.query(`
CREATE TABLE IF NOT EXISTS contacts (
username VARCHAR(20),
usernameContact VARCHAR(20),
usernameContact VARCHAR(20)
);
`);
} catch (e) {
@@ -77,19 +76,30 @@ async function insertUser(username, password, user_id, created_at) {
}
}
async function insertMessage(sender_id, receiver_id, message) {
async function insertMessage(sender, receiver_id, message) {
const query = `
INSERT INTO messages (sender_id, receiver_id, message)
INSERT INTO messages (sender, receiver_id, message)
VALUES ($1, $2, $3)
RETURNING id;
`;
try {
await client.query(query, [sender_id, receiver_id, message]);
await client.query(query, [sender, receiver_id, message]);
} catch (e) {
console.error("Failed to insert message ", e);
}
}
async function getMessages(username, recipient) {
const query = `
SELECT message FROM messages
WHERE (username = $1 AND recipient = $2);
`;
try {
await client.query(query, [username, recipient]);
} catch (e) {
console.error("Failed to get messages ", e);
}
}
async function checkUserExist(username) {
const query = `
SELECT COUNT(*) FROM accounts
@@ -162,4 +172,5 @@ module.exports = {
getPassword,
insertContact,
removeContact,
getMessages,
};

View File

@@ -8,7 +8,8 @@ const cookieParser = require("cookie-parser");
const bcrypt = require("bcrypt");
const crypto = require("crypto");
const saltRounds = 10;
const { Server } = require("socket.io");
const io = new Server(server);
require("dotenv").config();
const PORT = process.env.SERVER_PORT;
const {
@@ -128,7 +129,7 @@ app.get("/api/auth/validate", (req, res) => {
res.status(401).json({ message: "Unauthorized" });
});
initializeSocket(server);
initializeSocket(io);
server.listen(PORT, () => {
console.log(`Server is running on port: ${PORT}`);

View File

@@ -1,26 +1,21 @@
const { Server } = require("socket.io");
const { insertMessage } = require("../db/db");
const { insertMessage, getMessages } = require("../db/db");
const { verifyJwtToken } = require("../auth/jwt");
function initializeSocket(server) {
const io = new Server(server);
io.use((socket, next) => {
const token = socket.handshake.auth;
if (!token) {
socket.disconnect();
}
const { username } = verifyJwtToken(token);
if (!username) {
socket.disconnect();
}
});
function initializeSocket(io) {
console.log(
"sdfklsdfjklsdfjklasdfjkl;asdfjkljkasdfl;asjkldf;asdfjkl;jklasdfjklasdf;jkl;asdfjkl;asdf",
);
//TODO authorization
io.on("connection", (socket) => {
console.log("connected");
const token = socket.handshake.auth.token;
const { username } = verifyJwtToken(token);
socket.on("chat message", (msg) => {
insertMessage(msg);
insertMessage(username, "na razie nie ma ", msg);
console.log("message", msg);
});
socket.on("disconnect", () => {