added live search for ContactForm.tsx
This commit is contained in:
@@ -670,6 +670,20 @@ async function getConversationsForUser(user_id) {
|
||||
}
|
||||
}
|
||||
|
||||
async function contactSuggestion(username) {
|
||||
const query = `
|
||||
SELECT username FROM accounts
|
||||
WHERE LOWER(username) LIKE $1
|
||||
LIMIT 5;
|
||||
`;
|
||||
try {
|
||||
const result = await client.query(query, [`%${username.toLowerCase()}%`]);
|
||||
return result.rows.map((row) => row.username);
|
||||
} catch (e) {
|
||||
console.error("Failed to fetch contact suggestions", e);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
function getTime() {
|
||||
return new Date();
|
||||
}
|
||||
@@ -692,4 +706,5 @@ module.exports = {
|
||||
addMemberToGroup,
|
||||
addMemberToGroupByUsername,
|
||||
getConversationsForUser,
|
||||
contactSuggestion,
|
||||
};
|
||||
|
||||
@@ -42,6 +42,7 @@ const {
|
||||
createGroup,
|
||||
addMemberToGroup,
|
||||
addMemberToGroupByUsername,
|
||||
contactSuggestion,
|
||||
} = require("./db/db");
|
||||
const { extname } = require("node:path");
|
||||
|
||||
@@ -271,6 +272,28 @@ app.get("/api/chat/contacts", authorizeUser, async (req, res) => {
|
||||
return res.status(200).json(contacts);
|
||||
});
|
||||
|
||||
app.get(
|
||||
"/api/chat/contacts/suggestions/:contact",
|
||||
authorizeUser,
|
||||
async (req, res) => {
|
||||
const contact = req.params.contact;
|
||||
if (!contact) {
|
||||
return res.status(401).json({
|
||||
message: "contact not provided",
|
||||
});
|
||||
}
|
||||
try {
|
||||
const suggestions = await contactSuggestion(contact);
|
||||
console.log(
|
||||
`contacts suggestions for contact: ${contact}, suggestions: ${suggestions}`,
|
||||
);
|
||||
return res.status(200).json(suggestions);
|
||||
} catch (e) {
|
||||
res.status(500).json({ message: "Failed to get contact suggestions" });
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
app.get("/api/chat/messages/:contact", authorizeUser, async (req, res) => {
|
||||
if (!req.params.contact) {
|
||||
return res.status(400).json({ message: "Missing contact parameter" });
|
||||
|
||||
Reference in New Issue
Block a user