feat: add listed field to note for public listing visibility
Notes with listed=false are filtered out from all GET /notes queries. The field defaults to true so existing and new notes without it remain visible. Migration handles existing databases with ALTER TABLE ADD COLUMN.
This commit is contained in:
@@ -22,10 +22,10 @@ type NoteRow = {
|
||||
export const getNotes = (cursor?: string, limit = 20) => {
|
||||
const notes = cursor
|
||||
? db.prepare(
|
||||
"SELECT did, rkey, title, publishedAt, createdAt FROM note WHERE rkey < ? ORDER BY rkey DESC LIMIT ?",
|
||||
"SELECT did, rkey, title, publishedAt, createdAt FROM note WHERE listed = 1 AND rkey < ? ORDER BY rkey DESC LIMIT ?",
|
||||
).all<NoteRow>(cursor, limit)
|
||||
: db.prepare(
|
||||
"SELECT did, rkey, title, publishedAt, createdAt FROM note ORDER BY rkey DESC LIMIT ?",
|
||||
"SELECT did, rkey, title, publishedAt, createdAt FROM note WHERE listed = 1 ORDER BY rkey DESC LIMIT ?",
|
||||
).all<NoteRow>(limit);
|
||||
|
||||
return {
|
||||
@@ -37,10 +37,10 @@ export const getNotes = (cursor?: string, limit = 20) => {
|
||||
export const getNotesByDid = (did: string, cursor?: string, limit = 20) => {
|
||||
const notes = cursor
|
||||
? db.prepare(
|
||||
"SELECT did, rkey, title, publishedAt, createdAt FROM note WHERE did = ? AND rkey < ? ORDER BY rkey DESC LIMIT ?",
|
||||
"SELECT did, rkey, title, publishedAt, createdAt FROM note WHERE listed = 1 AND did = ? AND rkey < ? ORDER BY rkey DESC LIMIT ?",
|
||||
).all<NoteRow>(did, cursor, limit)
|
||||
: db.prepare(
|
||||
"SELECT did, rkey, title, publishedAt, createdAt FROM note WHERE did = ? ORDER BY rkey DESC LIMIT ?",
|
||||
"SELECT did, rkey, title, publishedAt, createdAt FROM note WHERE listed = 1 AND did = ? ORDER BY rkey DESC LIMIT ?",
|
||||
).all<NoteRow>(did, limit);
|
||||
|
||||
return {
|
||||
@@ -107,18 +107,21 @@ export const upsertNote = (note: Note) => {
|
||||
publishedAt,
|
||||
createdAt,
|
||||
did,
|
||||
rkey
|
||||
rkey,
|
||||
listed
|
||||
)
|
||||
VALUES (?, ?, ?, ?, ?)
|
||||
VALUES (?, ?, ?, ?, ?, ?)
|
||||
ON CONFLICT(did, rkey)
|
||||
DO UPDATE SET
|
||||
title = excluded.title,
|
||||
publishedAt = excluded.publishedAt
|
||||
publishedAt = excluded.publishedAt,
|
||||
listed = excluded.listed
|
||||
`,
|
||||
note.title,
|
||||
note.publishedAt ? new Date(note.publishedAt).toISOString() : now,
|
||||
note.createdAt ? new Date(note.createdAt).toISOString() : now,
|
||||
note.did,
|
||||
note.rkey,
|
||||
note.listed !== false ? 1 : 0,
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user