mirror of
https://github.com/wmn1525/grasscutterTools.git
synced 2024-11-25 09:27:27 +00:00
114 lines
3.8 KiB
TypeScript
114 lines
3.8 KiB
TypeScript
import { MockMethod } from "vite-plugin-mock"
|
|
import {
|
|
successResult,
|
|
errorResult,
|
|
pageSuccessResult,
|
|
requestParams,
|
|
getRequestToken
|
|
} from "@/utils/result"
|
|
import { isLogin, getToken, TokenPrefix } from '@/utils/auth'
|
|
|
|
export function createFakeUserList() {
|
|
return [
|
|
{
|
|
user_id: '3306',
|
|
user_name: 'blindmonk',
|
|
real_name: '扫地盲僧',
|
|
avatar: 'https://api.multiavatar.com/blindmonk.svg',
|
|
desc: '达摩深寺扫地僧,盲崖盘坐思人生',
|
|
password: 'blindmonk',
|
|
token: 'P1DeqWBao0HTU47Q',
|
|
organization: '某大型公司CTO',
|
|
location: '中国',
|
|
email: '896226896@qq.com',
|
|
auths: [],
|
|
is_admin: 1,
|
|
dev_languages: 'JavaScript/Vue/React/Node/PHP',
|
|
blog_github: 'https://github.com/MaleWeb',
|
|
blog_juejin: 'https://juejin.cn/user/3016715636842622',
|
|
blog_zhihu: 'https://www.zhihu.com/people/blind_monk',
|
|
role: 'admin'
|
|
|
|
}, {
|
|
user_id: '80',
|
|
user_name: 'test',
|
|
real_name: '盲僧水友',
|
|
avatar: 'https://api.multiavatar.com/test.svg',
|
|
desc: '欢迎加入扫地盲僧水友群',
|
|
password: 'test',
|
|
token: 'yg8bE8nZwiCL4nQg',
|
|
organization: '某大型公司CTO',
|
|
location: '中国',
|
|
email: '8888@china.com',
|
|
auths: [],
|
|
is_admin: 0,
|
|
dev_languages: 'JavaScript/Vue/React/Node/PHP',
|
|
blog_github: 'https://github.com/MaleWeb',
|
|
blog_juejin: 'https://juejin.cn/user/3016715636842622',
|
|
blog_zhihu: 'https://www.zhihu.com/people/blind_monk',
|
|
role: 'user',
|
|
}
|
|
]
|
|
}
|
|
export default [
|
|
{
|
|
url: '/user/profile',
|
|
timeout: 200,
|
|
method: 'get',
|
|
response: (request: requestParams) => {
|
|
const token = getRequestToken(request);
|
|
if (!token) return errorResult('Invalid token')
|
|
const checkUser = createFakeUserList().find((item) => `${TokenPrefix}${item.token}` === token);
|
|
if (!checkUser) {
|
|
return errorResult('未获得相应的用户信息');
|
|
}
|
|
return successResult(checkUser);
|
|
}
|
|
},
|
|
{
|
|
url: '/user/login',
|
|
timeout: 200,
|
|
method: 'post',
|
|
response: (request: requestParams) => {
|
|
const { username, password } = request?.body;
|
|
const checkUser = createFakeUserList().find(
|
|
(item) => item.user_name === username && item.password === password
|
|
)
|
|
if (!checkUser) {
|
|
return errorResult('不存在该用户');
|
|
}
|
|
return successResult({ token: checkUser.token })
|
|
}
|
|
},
|
|
{
|
|
url: '/user/logout',
|
|
timeout: 200,
|
|
method: 'post',
|
|
response: (request: requestParams) => {
|
|
console.dir(request)
|
|
const token = getRequestToken(request);
|
|
if (!token) return errorResult('token缺失!');
|
|
const checkUser = createFakeUserList().find((item) => `${TokenPrefix}${item.token}` === token);
|
|
if (!checkUser) {
|
|
return errorResult('token缺失!');
|
|
}
|
|
return successResult('Token 已失效');
|
|
},
|
|
},
|
|
{
|
|
url: '/text',
|
|
method: 'post',
|
|
rawResponse: async (req, res) => {
|
|
let reqbody = ''
|
|
await new Promise((resolve) => {
|
|
req.on('data', (chunk) => {
|
|
reqbody += chunk
|
|
})
|
|
req.on('end', () => resolve(undefined))
|
|
})
|
|
res.setHeader('Content-Type', 'text/plain')
|
|
res.statusCode = 200
|
|
res.end(`hello, ${reqbody}`)
|
|
},
|
|
},
|
|
] as MockMethod[] |