boredgame/src/lib/server/api/controllers/user.controller.ts

33 lines
1 KiB
TypeScript
Raw Normal View History

import 'reflect-metadata'
import type { Controller } from '$lib/server/api/common/interfaces/controller.interface'
import { UsersService } from '$lib/server/api/services/users.service'
import { Hono } from 'hono'
import { inject, injectable } from 'tsyringe'
import { requireAuth } from '../middleware/auth.middleware'
import type { HonoTypes } from '../types'
@injectable()
export class UserController implements Controller {
controller = new Hono<HonoTypes>()
constructor(@inject(UsersService) private readonly usersService: UsersService) {}
routes() {
return this.controller
2024-08-08 19:38:17 +00:00
.get('/', async (c) => {
const user = c.var.user
return c.json({ user })
})
2024-08-08 19:38:17 +00:00
.get('/:id', requireAuth, async (c) => {
const id = c.req.param('id')
const user = await this.usersService.findOneById(id)
return c.json({ user })
2024-08-08 19:38:17 +00:00
})
.get('/username/:userName', requireAuth, async (c) => {
const userName = c.req.param('userName')
const user = await this.usersService.findOneByUsername(userName)
return c.json({ user })
})
}
}