import type { IRequestAdapter } from '~/interfaces/adapter' import type { IController } from '~/interfaces/controller' import type { IRequestHandler } from '~/interfaces/request' import type { SayModel } from '~/models/say' import type { HTTPClient } from '../core' import { autoBind } from '~/utils/auto-bind' import { BaseCrudController } from './base' declare module '../core/client' { interface HTTPClient< T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown, > { say: SayController } } export class SayController extends BaseCrudController implements IController { base = 'says' name = 'say' constructor(protected client: HTTPClient) { super(client) autoBind(this) } public get proxy(): IRequestHandler { return this.client.proxy(this.base) } /** * 获取随机一条 */ getRandom() { return this.proxy.random.get<{ data: SayModel | null }>() } }