residues nextCursor removed

This commit is contained in:
slawk0
2024-11-14 21:11:52 +01:00
parent b7b6053120
commit 635bfd7e5d
6 changed files with 27 additions and 25 deletions

View File

@@ -13,6 +13,7 @@ type MessagesProps = {
};
export async function getContactsList(): Promise<ContactsProps[]> {
try {
console.log('getcontactslisklsdfjklfsdjklsdfjklsdfjklsdfjklsdfjkl');
const response = await axiosClient.get(`/api/chat/contacts`);
console.log(response.data);
return response.data;
@@ -51,9 +52,9 @@ export async function getMessages(
contact: string | null,
cursor: number | null = 0,
limit: number = 50,
): Promise<{ messages: MessagesProps[]; nextCursor: number | null }> {
): Promise<{ messages: MessagesProps[] }> {
if (contact === null || cursor === null) {
return { messages: [], nextCursor: null };
return { messages: [] };
}
try {
const response = await axiosClient.get(

View File

@@ -1,4 +1,3 @@
import { socket } from '../../socket/socket.tsx';
import { useEffect } from 'react';
import { deleteContact, getContactsList } from '../../api/contactsApi.tsx';
@@ -53,21 +52,20 @@ function ContactsList({
};
useEffect(() => {
if (!socket) {
console.error('Socket not initialized');
return;
}
// if (!socket) {
// //console.error('Socket not initialized');
// }
fetchContacts().catch((e) =>
console.error('Failed to fetch contacts: ', e),
);
return () => {
if (!socket) {
console.error('Socket not initialized');
return;
}
};
// return () => {
// if (!socket) {
// console.error('Socket not initialized');
// return;
// }
// };
}, []);
function removeContact(usernamecontact: string) {

View File

@@ -29,7 +29,7 @@ type ContactObjProps = {
function Chat() {
const [contactsList, setContactsList] = useState<ContactsProps[]>([]);
const [currentContact, setCurrentContact] = useState<string | null>(null);
const [cursor, setCursor] = useState<number | null>(0);
const [cursor, setCursor] = useState<number>(0);
const [messages, setMessages] = useState<ChatMessages[]>([]);
useEffect(() => {
@@ -73,8 +73,8 @@ function Chat() {
};
const fetchPreviousMessages = async (contact: string | null) => {
const messages = await getMessages(contact, cursor, 50);
console.log('Fetching messages for: ', contact, 'with cursor: ', cursor);
const messages = await getMessages(contact, cursor, 50);
messages.messages.forEach((msg) => {
setMessages((prevMessages) => {
if (!prevMessages.some((m) => m.message_id === msg.message_id)) {

View File

@@ -6,7 +6,7 @@
"dev:client": "cd client && npm run dev",
"dev:server": "cd server && nodemon server",
"install:all": "concurrently \"npm install\" \"cd client && npm install\" \"cd server && npm install\"",
"build": "concurrently \"cd client && npm run build\" \"cd server && node server.js\""
"build": "npm run build"
},
"devDependencies": {

View File

@@ -127,7 +127,7 @@ async function getMessages(username, recipient, limit = 50, cursor = 0) {
ORDER BY message_id DESC
LIMIT $4;
`;
params = [username, recipient, cursor, limit + 1];
params = [username, recipient, cursor, limit];
} else {
query = `
SELECT * FROM messages
@@ -135,7 +135,7 @@ async function getMessages(username, recipient, limit = 50, cursor = 0) {
ORDER BY message_id DESC
LIMIT $3;
`;
params = [username, recipient, limit + 1];
params = [username, recipient, limit];
}
try {
@@ -145,10 +145,7 @@ async function getMessages(username, recipient, limit = 50, cursor = 0) {
messages = messages.reverse();
}
const nextCursor =
messages.length > limit ? messages[limit - 2].message_id : null;
return { messages: messages, nextCursor: nextCursor };
return messages;
} catch (e) {
console.error("Failed to get messages ", e);
}
@@ -197,6 +194,7 @@ async function changePassword(username, newPassword) {
}
async function insertContact(username, usernameContact, read) {
const timestamp = getTime();
console.log(
`insertContact username: ${username}, usernameContact: ${usernameContact}, read: ${read}`,
);
@@ -208,7 +206,7 @@ async function insertContact(username, usernameContact, read) {
DO NOTHING;
`;
try {
await client.query(query, [username, usernameContact, read]);
await client.query(query, [username, usernameContact, timestamp, read]);
} catch (e) {
console.error("Failed to insert contact ", e);
}

View File

@@ -189,14 +189,19 @@ app.get("/api/chat/messages/:contact", authorizeUser, async (req, res) => {
const limit = parseInt(req.query.limit);
const cursor = parseInt(req.query.cursor);
const { messages, nextCursor } = await getMessages(
const messages = await getMessages(
req.user.username,
req.params.contact,
limit,
cursor,
);
if (messages && messages.length < limit) {
return res.status(404).json({ message: "No more messages" });
}
console.log("MESSAGESLENGTH: ", messages.length, limit);
console.log("Sent messages for: ", req.user.username, "messages: ", messages);
return res.status(200).json({ messages, nextCursor });
return res.status(200).json({ messages });
});
initializeSocket(io);