-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUserAPIClient.ts
60 lines (57 loc) · 1.47 KB
/
UserAPIClient.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import AUTHENTICATED_USER_KEY from "../constants/AuthConstants";
import { Role } from "../types/AuthTypes";
import { User } from "../types/UserTypes";
import {
getLocalStorageObjProperty,
setLocalStorageObjProperty,
} from "../utils/LocalStorageUtils";
import baseAPIClient from "./BaseAPIClient";
const getUsersByRole = async (role: Role): Promise<User[]> => {
const bearerToken = `Bearer ${getLocalStorageObjProperty(
AUTHENTICATED_USER_KEY,
"accessToken",
)}`;
try {
const { data } = await baseAPIClient.get(`/users/${role}`, {
headers: { Authorization: bearerToken },
});
return data;
} catch (error) {
return [];
}
};
const updateUserDetails = async (
userId: string,
firstName: string,
lastName: string,
role: string,
status: string,
): Promise<User> => {
const bearerToken = `Bearer ${getLocalStorageObjProperty(
AUTHENTICATED_USER_KEY,
"accessToken",
)}`;
try {
const response = await baseAPIClient.put(
`/users/updateMyAccount/${userId}`,
{
firstName,
lastName,
role,
status,
},
{
headers: { Authorization: bearerToken },
},
);
setLocalStorageObjProperty(AUTHENTICATED_USER_KEY, "firstName", firstName);
setLocalStorageObjProperty(AUTHENTICATED_USER_KEY, "lastName", lastName);
return response.data;
} catch (error) {
throw new Error("Failed to update user details");
}
};
export default {
getUsersByRole,
updateUserDetails,
};