import type { IRequestAdapter } from '~/interfaces/adapter' import type { IController } from '~/interfaces/controller' import type { IRequestHandler } from '~/interfaces/request' import { autoBind } from '~/utils/auto-bind' import { HTTPClient } from '../core' declare module '../core/client' { interface HTTPClient< T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown, > { ack: AckController } } /** * @support core >= 4.4.0 */ export class AckController implements IController { base = 'ack' name = 'ack' constructor(private client: HTTPClient) { autoBind(this) } public get proxy(): IRequestHandler { return this.client.proxy(this.base) } read(type: 'post' | 'note', id: string) { return this.proxy.post({ data: { type: 'read', payload: { type, id, }, }, }) } }