29 lines
808 B
TypeScript
29 lines
808 B
TypeScript
import User from '#models/user'
|
|
import { createUserValidator } from '#validators/user'
|
|
import type { HttpContext } from '@adonisjs/core/http'
|
|
import { cuid } from '@adonisjs/core/helpers'
|
|
import drive from '@adonisjs/drive/services/main'
|
|
|
|
export default class UserController {
|
|
// GET /user/@me
|
|
async me({ auth }: HttpContext) {
|
|
return {
|
|
success: true,
|
|
data: auth.user,
|
|
}
|
|
}
|
|
|
|
// POST /user
|
|
async create({ request }: HttpContext) {
|
|
const payload = await request.validateUsing(createUserValidator)
|
|
// Save avatar
|
|
const avatar = `avatars/${cuid()}.${payload.avatar.extname}`
|
|
await payload.avatar.moveToDisk(avatar)
|
|
// const avatar = await drive.use().getSignedUrl(key)
|
|
console.log(avatar)
|
|
return User.create({
|
|
...payload,
|
|
avatar,
|
|
})
|
|
}
|
|
}
|