feat: version 2.10.2 -- icono de compartida + buscador en tarjetas de Notas
Tarjetas de Notas: icono junto a la fecha cuando la nota esta compartida (propia compartida con alguien, via share_count nuevo en la consulta; o recibida de otro usuario). Buscador junto al titulo que filtra las tarjetas en vivo por contenido (client-side, sin ida y vuelta al backend ya que el contenido no esta cifrado como en Contraseñas). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -5,14 +5,15 @@ import { pool } from '../../config/db.js';
|
||||
export async function findVisibleToUser(userId) {
|
||||
const [rows] = await pool.query(
|
||||
`SELECT n.id, n.user_id, n.content, n.created_at, n.updated_at,
|
||||
(n.user_id = ?) AS is_owner, u.name AS owner_name
|
||||
(n.user_id = ?) AS is_owner, u.name AS owner_name,
|
||||
(SELECT COUNT(*) FROM note_shares ns WHERE ns.note_id = n.id) AS share_count
|
||||
FROM notes n
|
||||
JOIN users u ON u.id = n.user_id
|
||||
WHERE n.user_id = ? OR n.id IN (SELECT note_id FROM note_shares WHERE user_id = ?)
|
||||
ORDER BY n.updated_at DESC`,
|
||||
[userId, userId, userId]
|
||||
);
|
||||
return rows.map((r) => ({ ...r, is_owner: !!r.is_owner }));
|
||||
return rows.map((r) => ({ ...r, is_owner: !!r.is_owner, share_count: Number(r.share_count) }));
|
||||
}
|
||||
|
||||
export async function findById(id) {
|
||||
|
||||
Reference in New Issue
Block a user