feat: 修改用户部分

This commit is contained in:
2025-02-20 11:51:43 +08:00
parent b6d6737751
commit 14572ce6fa
3 changed files with 87 additions and 4 deletions

View File

@@ -2,3 +2,5 @@ import './list.ts';
import './org.ts';
import './me.ts';
import './update.ts'

56
src/routes/user/update.ts Normal file
View File

@@ -0,0 +1,56 @@
import { app } from '@/app.ts'
import { User } from '@/models/user.ts'
app
.route({
path: 'user',
key: 'getUpdateInfo',
middleware: ['auth']
})
.define(async (ctx) => {
const tokenUser = ctx.state?.tokenUser || {}
const user = await User.findByPk(tokenUser.id)
if (!user) {
ctx.throw(500, 'user not found')
}
ctx.body = {
nickname: user.nickname,
avatar: user.avatar,
data: user.data
}
})
.addTo(app)
app
.route('user', 'updateInfo', {
middleware: ['auth']
})
.define(async (ctx) => {
const { nickname, avatar, data } = ctx.query.data || {}
const tokenUser = ctx.state?.tokenUser || {}
const { id } = tokenUser
const user = await User.findByPk(id)
let updateData: any = {}
if (!user) {
ctx.throw(500, 'user not found')
}
if (nickname) {
updateData.nickname = nickname
}
if (avatar) {
updateData.avatar = avatar
}
await user.update(
{
...updateData,
data: {
...user.data,
...data
}
},
{
fields: ['nickname', 'avatar', 'data']
}
)
ctx.body = await user.getInfo()
})
.addTo(app)