-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathusersAPI.js
More file actions
56 lines (48 loc) · 1.42 KB
/
usersAPI.js
File metadata and controls
56 lines (48 loc) · 1.42 KB
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
import axiosInstance from "../axiosInstance.js";
import { parseUserData } from "@/utils/users.js";
export default {
async getUsers() {
const fetchedUserData = await axiosInstance.get(`/api/info/users`);
return parseUserData(fetchedUserData.data);
},
async getUserByUsername(username) {
return await axiosInstance({
method: "get",
url: `/api/info/user/${username}`
});
},
async getUserStats() {
return await axiosInstance.get(`/api/admin/statistics`);
},
async manageUser(userId, action) {
return await axiosInstance({
method: "post",
url: `/api/admin/users/${action}/${userId}`
});
},
async fetchAsCSV(sortFilter, statusFilter) {
if (sortFilter == "User Name") {
sortFilter = "username";
} else if (sortFilter == "Score") {
sortFilter = "score";
}
if (statusFilter == "Active") {
statusFilter = "active";
} else if (statusFilter == "Banned") {
statusFilter = "banned";
}
return await axiosInstance({
method: "get",
responseType: "blob",
url: `/api/info/users?sort=${sortFilter}&filter=${statusFilter}&format=csv`
});
},
async getLeaderboard(page = 1) {
const response = await axiosInstance.get(`/api/info/leaderboard?page=${page}`);
return response.data;
},
async getUserCount() {
const response = await axiosInstance.get('/api/info/usercount');
return response.data;
}
};