feat(comments) : show heart giver profiles on comments and notifications
This commit is contained in:
@@ -24,7 +24,8 @@ export async function listNotifications(user: { id: string; role: string | null;
|
||||
))));
|
||||
const query = () => getDb().select({ notification: notifications, authorName: users.name, authorImage: users.image, cursorTime: sql<string>`to_char(${notifications.createdAt} at time zone 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.US"Z"')` }).from(notifications)
|
||||
.leftJoin(comments, eq(comments.id, notifications.commentId)).leftJoin(root, eq(root.id, comments.rootId))
|
||||
.leftJoin(users, and(eq(users.id, comments.authorId), inArray(notifications.kind, ['comment_new', 'comment_reply', 'comment_edit'])))
|
||||
.leftJoin(users, and(eq(users.id, sql`case when ${notifications.kind} = 'comment_heart' then ${comments.heartedById} else ${comments.authorId} end`),
|
||||
inArray(notifications.kind, ['comment_new', 'comment_reply', 'comment_edit', 'comment_heart'])))
|
||||
.leftJoin(commentThreads, eq(commentThreads.id, comments.threadId)).leftJoin(guides, eq(guides.id, commentThreads.guideId));
|
||||
const [rows, count] = await Promise.all([
|
||||
query().where(and(visible, before ? sql`(${notifications.createdAt}, ${notifications.id}) < (${before.time}::timestamptz, ${before.id}::uuid)` : undefined)).orderBy(desc(notifications.createdAt), desc(notifications.id)).limit(21),
|
||||
|
||||
Reference in New Issue
Block a user