From b0d9dd1f84315c35f0e02a0b9fe08392c136858e Mon Sep 17 00:00:00 2001 From: Ben Furber Date: Wed, 18 Sep 2024 16:48:41 +0100 Subject: [PATCH] feat: add last active to user side effect updates --- functions/src/discussionUpdates/index.ts | 13 ++++++++----- functions/src/questionUpdates/index.ts | 12 ++++++++---- functions/src/userUpdates/index.ts | 2 -- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/functions/src/discussionUpdates/index.ts b/functions/src/discussionUpdates/index.ts index 6da937f61e..e64e03680e 100644 --- a/functions/src/discussionUpdates/index.ts +++ b/functions/src/discussionUpdates/index.ts @@ -1,10 +1,10 @@ -import { firestore } from 'firebase-admin' import * as functions from 'firebase-functions' import { db } from '../Firebase/firestoreDB' import { DB_ENDPOINTS } from '../models' -import type { IUserDB, IDiscussion } from '../models' +import type { firestore } from 'firebase-admin' +import type { IDiscussion, IUserDB } from '../models' /********************************************************************* * Side-effects to be carried out on various question updates, namely: @@ -21,7 +21,6 @@ export const handleDiscussionUpdate = functions async function updateDocument( change: functions.Change, ) { - // add new comments to user.stats.userCreatedComments const addedComments = getAddedComments(change) for (const addedComment of addedComments) { const commentId = addedComment._id @@ -31,10 +30,12 @@ async function updateDocument( .get() const user = userSnapshot.docs[0].data() as IUserDB - let userCreatedComments = user.stats?.userCreatedComments ?? {} + const _lastActive = Date.now().toString(16) + const userCreatedComments = user.stats?.userCreatedComments ?? {} userCreatedComments[commentId] = addedComment.parentCommentId await userSnapshot.docs[0].ref.update({ + _lastActive, 'stats.userCreatedComments': userCreatedComments, }) } @@ -49,10 +50,12 @@ async function updateDocument( .get() const user = userSnapshot.docs[0].data() as IUserDB - let userCreatedComments = user.stats?.userCreatedComments ?? {} + const _lastActive = Date.now().toString(16) + const userCreatedComments = user.stats?.userCreatedComments ?? {} delete userCreatedComments[commentId] await userSnapshot.docs[0].ref.update({ + _lastActive, 'stats.userCreatedComments': userCreatedComments, }) } diff --git a/functions/src/questionUpdates/index.ts b/functions/src/questionUpdates/index.ts index 6a33583a35..8bc2441e13 100644 --- a/functions/src/questionUpdates/index.ts +++ b/functions/src/questionUpdates/index.ts @@ -1,10 +1,10 @@ -import { firestore } from 'firebase-admin' import * as functions from 'firebase-functions' import { db } from '../Firebase/firestoreDB' import { DB_ENDPOINTS } from '../models' -import type { IUserDB, IQuestionDB } from '../models' +import type { firestore } from 'firebase-admin' +import type { IQuestionDB, IUserDB } from '../models' /********************************************************************* * Side-effects to be carried out on various question updates, namely: @@ -41,10 +41,12 @@ async function updateDocument(docSnapshot: firestore.QueryDocumentSnapshot) { .get() const user = userSnapshot.docs[0].data() as IUserDB - let userCreatedQuestions = user.stats?.userCreatedQuestions ?? {} + const _lastActive = Date.now().toString(16) + const userCreatedQuestions = user.stats?.userCreatedQuestions ?? {} userCreatedQuestions[question_id] = question.moderation await userSnapshot.docs[0].ref.update({ + _lastActive, 'stats.userCreatedQuestions': userCreatedQuestions, }) } @@ -59,10 +61,12 @@ async function deleteDocument(docSnapshot: firestore.QueryDocumentSnapshot) { .get() const user = userSnapshot.docs[0].data() as IUserDB - let userCreatedQuestions = user.stats?.userCreatedQuestions ?? {} + const _lastActive = Date.now().toString(16) + const userCreatedQuestions = user.stats?.userCreatedQuestions ?? {} delete userCreatedQuestions[question_id] await userSnapshot.docs[0].ref.update({ + _lastActive, 'stats.userCreatedQuestions': userCreatedQuestions, }) } diff --git a/functions/src/userUpdates/index.ts b/functions/src/userUpdates/index.ts index 03526132c3..36aef48c8f 100644 --- a/functions/src/userUpdates/index.ts +++ b/functions/src/userUpdates/index.ts @@ -144,8 +144,6 @@ async function updatePostsCountry(userId: string, country: IUserDB['country']) { return false } -// update _lastActive for any action --> content creation/editing - async function deleteMapPin(_id: string) { const pin = await db.collection(DB_ENDPOINTS.mappins).doc(_id).get()