Skip to content

Conversation

markmiro
Copy link
Contributor

@markmiro markmiro commented Aug 28, 2025

ai-generated soft delete

.prepare("SELECT owner_id, created_at FROM notebooks WHERE id = ?")
.prepare(
"SELECT owner_id, created_at FROM notebooks WHERE id = ? AND deleted_at IS NULL"
)
.bind(notebookId)
.first<{ owner_id: string; created_at: string }>();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we're listing permissions on this particular notebook, I feel like we don't have to do the delete check. That's metadata to worry about when choosing whether or not to show it in the notebook dashboard.

.prepare("SELECT 1 FROM notebooks WHERE id = ? AND owner_id = ?")
.prepare(
"SELECT 1 FROM notebooks WHERE id = ? AND owner_id = ? AND deleted_at IS NULL"
)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same for this one. Someone can still own a deleted notebook.

@@ -378,7 +378,7 @@ export const appRouter = router({
}
}),

// Delete notebook
// Delete notebook (soft delete)
deleteNotebook: authedProcedure
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could probably call this softDeleteNotebook now, so that someday when we bring in real delete that has a way to go.

WHERE user_id = ? AND permission = 'writer' AND notebook_id IN (${placeholders})`
`SELECT np.notebook_id FROM notebook_permissions np
INNER JOIN notebooks n ON np.notebook_id = n.id
WHERE np.user_id = ? AND np.permission = 'writer' AND n.deleted_at IS NULL AND np.notebook_id IN (${placeholders})`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do think the deleted_at check goes outside of the permissions provider.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants