Skip to content

Commit

Permalink
feat: add last active to user side effect updates
Browse files Browse the repository at this point in the history
  • Loading branch information
benfurber committed Sep 24, 2024
1 parent d9b1c7b commit b0d9dd1
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 11 deletions.
13 changes: 8 additions & 5 deletions functions/src/discussionUpdates/index.ts
Original file line number Diff line number Diff line change
@@ -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:
Expand All @@ -21,7 +21,6 @@ export const handleDiscussionUpdate = functions
async function updateDocument(
change: functions.Change<firestore.QueryDocumentSnapshot>,
) {
// add new comments to user.stats.userCreatedComments
const addedComments = getAddedComments(change)
for (const addedComment of addedComments) {
const commentId = addedComment._id
Expand All @@ -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,
})
}
Expand All @@ -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,
})
}
Expand Down
12 changes: 8 additions & 4 deletions functions/src/questionUpdates/index.ts
Original file line number Diff line number Diff line change
@@ -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:
Expand Down Expand Up @@ -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,
})
}
Expand All @@ -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,
})
}
2 changes: 0 additions & 2 deletions functions/src/userUpdates/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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()

Expand Down

0 comments on commit b0d9dd1

Please sign in to comment.