From 46f552b803eaea1e8b253a920d02aad86fe0f6e6 Mon Sep 17 00:00:00 2001 From: keyan Date: Mon, 14 Mar 2022 11:43:21 -0500 Subject: [PATCH] store last time user visited so we can guage retention --- api/resolvers/user.js | 11 +++++++++-- .../migrations/20220314162449_last_seen/migration.sql | 2 ++ prisma/schema.prisma | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 prisma/migrations/20220314162449_last_seen/migration.sql diff --git a/api/resolvers/user.js b/api/resolvers/user.js index 348d1a52..05d96229 100644 --- a/api/resolvers/user.js +++ b/api/resolvers/user.js @@ -27,8 +27,15 @@ export function topClause (within) { export default { Query: { - me: async (parent, args, { models, me }) => - me ? await models.user.findUnique({ where: { id: me.id } }) : null, + me: async (parent, args, { models, me }) => { + if (!me) { + return null + } + + await models.user.update({ where: { id: me.id }, data: { lastSeenAt: new Date() } }) + + return await models.user.findUnique({ where: { id: me.id } }) + }, user: async (parent, { name }, { models }) => { return await models.user.findUnique({ where: { name } }) }, diff --git a/prisma/migrations/20220314162449_last_seen/migration.sql b/prisma/migrations/20220314162449_last_seen/migration.sql new file mode 100644 index 00000000..1635852f --- /dev/null +++ b/prisma/migrations/20220314162449_last_seen/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "users" ADD COLUMN "lastSeenAt" TIMESTAMP(3); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 04551965..375535da 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -36,6 +36,7 @@ model User { tipDefault Int @default(1) pubkey String? @unique trust Float @default(0) + lastSeenAt DateTime? upvotePopover Boolean @default(false) tipPopover Boolean @default(false)