mirror of
https://github.com/ccmjga/zhilu-admin
synced 2026-03-24 11:53:41 +08:00
init
This commit is contained in:
188
frontend/src/api/mocks/userHandlers.ts
Normal file
188
frontend/src/api/mocks/userHandlers.ts
Normal file
@@ -0,0 +1,188 @@
|
||||
import { faker } from "@faker-js/faker";
|
||||
import { http, HttpResponse } from "msw";
|
||||
import { ROLE } from "../../router/constants";
|
||||
|
||||
export default [
|
||||
http.get("/iam/user", () => {
|
||||
const generatePermission = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
code: `perm_${faker.lorem.words({ min: 1, max: 1 })}`,
|
||||
name: faker.lorem.words({ min: 1, max: 1 }),
|
||||
});
|
||||
|
||||
const generateRole = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
code: faker.helpers.arrayElement([
|
||||
ROLE.ADMIN,
|
||||
"editor",
|
||||
"viewer",
|
||||
"manager",
|
||||
]),
|
||||
name: faker.person.jobTitle(),
|
||||
permissions: faker.helpers.multiple(generatePermission, {
|
||||
count: { min: 1, max: 5 },
|
||||
}),
|
||||
});
|
||||
|
||||
const generateDepartment = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
code: `dept_${faker.lorem.word()}`,
|
||||
name: faker.company.name(),
|
||||
parentId: faker.number.int({ min: 1, max: 30 }),
|
||||
enable: faker.datatype.boolean(),
|
||||
});
|
||||
|
||||
const generateUser = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
username: faker.internet.email(),
|
||||
password: faker.internet.password(),
|
||||
enable: faker.datatype.boolean(),
|
||||
roles: faker.helpers.multiple(generateRole, {
|
||||
count: { min: 1, max: 3 },
|
||||
}),
|
||||
createTime: faker.date.recent({ days: 30 }).toISOString(),
|
||||
permissions: faker.helpers.multiple(generatePermission, {
|
||||
count: { min: 1, max: 5 },
|
||||
}),
|
||||
departments: faker.helpers.multiple(generateDepartment, {
|
||||
count: { min: 0, max: 3 },
|
||||
}),
|
||||
});
|
||||
|
||||
return HttpResponse.json(generateUser());
|
||||
}),
|
||||
http.get("/iam/users", () => {
|
||||
const generatePermission = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
code: `perm_${faker.lorem.word()}`,
|
||||
name: faker.lorem.words({ min: 1, max: 3 }),
|
||||
});
|
||||
|
||||
const generateRole = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
code: [ROLE.ADMIN, "editor", "viewer", "manager"],
|
||||
name: faker.person.jobTitle(),
|
||||
permissions: faker.helpers.multiple(generatePermission, {
|
||||
count: { min: 1, max: 5 },
|
||||
}),
|
||||
});
|
||||
|
||||
const generateDepartment = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
code: `dept_${faker.lorem.word()}`,
|
||||
name: faker.company.name(),
|
||||
parentId: faker.number.int({ min: 1, max: 30 }),
|
||||
enable: faker.datatype.boolean(),
|
||||
});
|
||||
|
||||
const generateUser = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
username: faker.internet.email(),
|
||||
password: faker.internet.password(),
|
||||
enable: faker.datatype.boolean(),
|
||||
roles: faker.helpers.multiple(generateRole, {
|
||||
count: { min: 1, max: 3 },
|
||||
}),
|
||||
createTime: faker.date.recent({ days: 30 }).toISOString(),
|
||||
permissions: faker.helpers.multiple(generatePermission, {
|
||||
count: { min: 1, max: 5 },
|
||||
}),
|
||||
departments: faker.helpers.multiple(generateDepartment, {
|
||||
count: { min: 0, max: 3 },
|
||||
}),
|
||||
});
|
||||
|
||||
const mockData = {
|
||||
data: faker.helpers.multiple(generateUser, { count: 10 }),
|
||||
total: 30,
|
||||
};
|
||||
return HttpResponse.json(mockData);
|
||||
}),
|
||||
http.post("/api/users/:userId/departments", () => {
|
||||
console.log('Captured a "POST /api/users/:userId/departments" request');
|
||||
return HttpResponse.json({ success: true });
|
||||
}),
|
||||
http.delete("/api/users/:userId/departments", () => {
|
||||
console.log('Captured a "DELETE /api/users/:userId/departments" request');
|
||||
return HttpResponse.json({ success: true });
|
||||
}),
|
||||
http.post("/iam/user", () => {
|
||||
console.log('Captured a "POST /posts" request');
|
||||
return HttpResponse.json();
|
||||
}),
|
||||
http.delete("/iam/user", ({ params }) => {
|
||||
console.log(`Captured a "DELETE /posts/${params.id}" request`);
|
||||
return HttpResponse.json();
|
||||
}),
|
||||
http.post("/iam/me", () => {
|
||||
console.log('Captured a "POST /posts" request');
|
||||
return HttpResponse.json();
|
||||
}),
|
||||
http.post("/iam/role/bind", () => {
|
||||
console.log('Captured a "POST /posts" request');
|
||||
return HttpResponse.json();
|
||||
}),
|
||||
http.post("/iam/role/unbind", () => {
|
||||
console.log('Captured a "POST /posts" request');
|
||||
return HttpResponse.json();
|
||||
}),
|
||||
http.get("/iam/me", () => {
|
||||
const generatePermission = () => ({
|
||||
id: faker.number.int({ min: 1, max: 1000 }),
|
||||
code: `perm_${faker.lorem.word()}`,
|
||||
name: faker.lorem.words({ min: 1, max: 3 }),
|
||||
});
|
||||
|
||||
const generateRole = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
code: [ROLE.ADMIN, "editor", "viewer", "manager"],
|
||||
name: faker.person.jobTitle(),
|
||||
permissions: faker.helpers.multiple(generatePermission, {
|
||||
count: { min: 1, max: 5 },
|
||||
}),
|
||||
});
|
||||
|
||||
const generateDepartment = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
code: `dept_${faker.lorem.word()}`,
|
||||
name: faker.company.name(),
|
||||
parentId: faker.number.int({ min: 1, max: 30 }),
|
||||
enable: faker.datatype.boolean(),
|
||||
});
|
||||
|
||||
const generateUser = () => ({
|
||||
id: faker.number.int({ min: 1, max: 100 }),
|
||||
username: faker.internet.email(),
|
||||
password: faker.internet.password(),
|
||||
enable: faker.datatype.boolean(),
|
||||
roles: faker.helpers.multiple(generateRole, {
|
||||
count: { min: 1, max: 3 },
|
||||
}),
|
||||
createTime: faker.date.recent({ days: 30 }).toISOString(),
|
||||
permissions: faker.helpers.multiple(generatePermission, {
|
||||
count: { min: 1, max: 5 },
|
||||
}),
|
||||
departments: faker.helpers.multiple(generateDepartment, {
|
||||
count: { min: 0, max: 3 },
|
||||
}),
|
||||
});
|
||||
const mockData = generateUser();
|
||||
return HttpResponse.json(mockData);
|
||||
}),
|
||||
http.post("/department/unbind", () => {
|
||||
console.log("Captured a 'POST /department/unbind' request");
|
||||
return HttpResponse.json();
|
||||
}),
|
||||
http.post("/department/bind", () => {
|
||||
console.log("Captured a 'POST /department/bind' request");
|
||||
return HttpResponse.json();
|
||||
}),
|
||||
http.post("/iam/position/bind", () => {
|
||||
console.log('Captured a "POST /posts" request');
|
||||
return HttpResponse.json();
|
||||
}),
|
||||
http.post("/iam/position/unbind", () => {
|
||||
console.log('Captured a "POST /posts" request');
|
||||
return HttpResponse.json();
|
||||
}),
|
||||
];
|
||||
Reference in New Issue
Block a user