mirror of
https://github.com/ccmjga/zhilu-admin
synced 2026-03-19 17:03:46 +08:00
189 lines
5.7 KiB
TypeScript
189 lines
5.7 KiB
TypeScript
import { faker } from "@faker-js/faker";
|
|
import { http, HttpResponse } from "msw";
|
|
import { ERole } 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([
|
|
ERole.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: [ERole.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: [ERole.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();
|
|
}),
|
|
];
|