Skip to content

Commit 271bf86

Browse files
Merge pull request #56 from uwblueprint/S24/sayi/connect-email-form
S24/sayi/connect email form
2 parents 9bea1d0 + 24379b9 commit 271bf86

File tree

3 files changed

+35
-5
lines changed

3 files changed

+35
-5
lines changed

backend/typescript/rest/authRoutes.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,16 @@ authRouter.post(
5757
async (req, res) => {
5858
try {
5959
if (isAuthorizedByEmail(req.body.email)) {
60-
const userDTO = await userService.getUserByEmail(req.body.email);
61-
const rest = { ...{ accessToken: req.body.accessToken }, ...userDTO };
60+
const user = await userService.getUserByEmail(req.body.email);
6261

62+
const activatedUser = user;
63+
activatedUser.status = UserStatus.ACTIVE;
64+
await userService.updateUserById(user.id, activatedUser);
65+
66+
const rest = {
67+
...{ accessToken: req.body.accessToken },
68+
...activatedUser,
69+
};
6370
res
6471
.cookie("refreshToken", req.body.refreshToken, cookieOptions)
6572
.status(200)

frontend/src/APIClients/UserAPIClient.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ const get = async (): Promise<User[]> => {
1414
});
1515
return data;
1616
} catch (error) {
17-
throw new Error(`Failed to get entity: ${error}`);
17+
throw new Error(
18+
`Failed to get users. ${
19+
error instanceof Error ? error.message : "Unknown error occured."
20+
}`,
21+
);
1822
}
1923
};
2024

@@ -33,4 +37,22 @@ const create = async (formData: CreateUserDTO): Promise<CreateUserDTO> => {
3337
}
3438
};
3539

36-
export default { get, create };
40+
const invite = async (email: string): Promise<void> => {
41+
const bearerToken = `Bearer ${getLocalStorageObjProperty(
42+
AUTHENTICATED_USER_KEY,
43+
"accessToken",
44+
)}`;
45+
try {
46+
await baseAPIClient.post(
47+
"/auth/invite-user",
48+
{ email },
49+
{
50+
headers: { Authorization: bearerToken },
51+
},
52+
);
53+
} catch (error) {
54+
throw new Error(`Failed to invite user with email '${email}'`);
55+
}
56+
};
57+
58+
export default { get, create, invite };

frontend/src/components/pages/UserManagementPage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ const handleUserSubmit = async (formData: AddUserRequest) => {
3232
| "Staff"
3333
| "Volunteer",
3434
});
35+
await UserAPIClient.invite(formData.email);
3536
} catch (error) {
3637
throw error;
3738
}
@@ -50,7 +51,7 @@ const UserManagementPage = (): React.ReactElement => {
5051
setUsers(fetchedUsers);
5152
}
5253
} catch (error) {
53-
setErrorMessage(`Failed to get users: ${error}`);
54+
setErrorMessage(`${error}`);
5455
}
5556
};
5657

0 commit comments

Comments
 (0)