feat: 修改用户部分
This commit is contained in:
@@ -2,3 +2,5 @@ import './list.ts';
|
||||
import './org.ts';
|
||||
|
||||
import './me.ts';
|
||||
|
||||
import './update.ts'
|
||||
|
||||
56
src/routes/user/update.ts
Normal file
56
src/routes/user/update.ts
Normal 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)
|
||||
Reference in New Issue
Block a user