import { Controller, CurrentUser, Description, Get, Params, Query } from "@iceshrimp/koa-openapi"; import { UserResponse } from "@/server/api/web/entities/user.js"; import { TimelineResponse } from "@/server/api/web/entities/note.js"; import type { ILocalUser } from "@/models/entities/user.js"; import { UserHandler } from "@/server/api/web/handlers/user.js"; @Controller('/user') export class UserController { @Get('/:id') @Description("Get information on the specified user") async getUser( @CurrentUser() me: ILocalUser | null, @Params('id') id: string, @Query('detail') detail: boolean ): Promise<UserResponse> { return UserHandler.getUser(me, id); } @Get('/:id/notes') @Description("Get the specified user's notes") async getUserNotes( @CurrentUser() me: ILocalUser | null, @Params('id') id: string, @Query('replies') replies: boolean = false, @Query('limit') limit: number = 20, @Query('max_id') maxId?: string, @Query('min_id') minId?: string, ): Promise<TimelineResponse> { return UserHandler.getUserNotes(id, replies, me, limit, maxId, minId); } }