handling invited users and activating them

This commit is contained in:
Arjun Patel
2022-01-15 00:08:13 -08:00
parent 1a2265e70f
commit 39705c0493
3 changed files with 37 additions and 1 deletions
+2
View File
@@ -80,7 +80,9 @@ export default function TeamVoiceLine() {
try {
// listeners for all teammates' status
if (teamMembers) {
console.log(teamMembers);
teamMembers.map((tmember) => {
console.log(tmember);
if (tmember.status == TeamMemberStatus.activated) {
const docRef = doc(db, Collections.users, tmember.userId);
+10 -1
View File
@@ -57,7 +57,7 @@ function RouteHandler() {
const returnedTeamMembers = await teamService.getTeamMembersByUserId(
currUser.uid
);
console.log(returnedTeamMembers);
// if the user is deleted from a team, don't let them go there
var teamId = "";
returnedTeamMembers.map((tm) => {
@@ -75,6 +75,15 @@ function RouteHandler() {
return;
}
// last chance, if they are invited to a team, check for it
const invitedTeamMember = await teamService.getTeamMembersByEmailInvite(
currUser.email
);
if (invitedTeamMember.length > 0) {
router.push("/teams/" + invitedTeamMember[0].teamId);
}
setLoading(false);
} catch (error) {
console.log(error);
+25
View File
@@ -131,6 +131,31 @@ export default class TeamService implements IService {
return teamMember;
}
async getTeamMembersByEmailInvite(
emailAddress: string
): Promise<TeamMember[]> {
const q = query(
collection(this.db, Collections.teamMembers),
where("inviteEmailAddress", "==", emailAddress)
);
const querySnapshot = await getDocs(q);
var teamMembers: TeamMember[] = [];
querySnapshot.forEach((doc) => {
// doc.data() is never undefined for query doc snapshots
// get the first one and just return...shouldn't be more
console.log("got teammember data");
let teamMember: TeamMember = doc.data() as TeamMember;
teamMember.id = doc.id;
teamMembers.push(teamMember);
});
return teamMembers;
}
async getTeamMembersByUserId(userId: string): Promise<TeamMember[]> {
const q = query(
collection(this.db, Collections.teamMembers),