diff --git a/src/api/apiHelper.ts b/src/api/apiHelper.ts index 358d94b..3e1aab1 100644 --- a/src/api/apiHelper.ts +++ b/src/api/apiHelper.ts @@ -1,6 +1,7 @@ import { ApiClient } from './apiClient'; import type { Client } from '../client/client'; +import type { IApiCreateMessage } from '../utils/types'; export class ApiHelper { public apiClient: ApiClient; @@ -15,10 +16,11 @@ export class ApiHelper { this.apiClient = new ApiClient(this.client, this._token); } - public createMessage(channelId: string): void { - this.apiClient.get({ + public createMessage(channelId: string, options: IApiCreateMessage): void { + this.apiClient.post({ path: `/channels/${channelId}/messages`, requireAuth: true, + body: options, }); } } diff --git a/src/utils/types.ts b/src/utils/types.ts index b32d8e7..bf705da 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -13,6 +13,11 @@ export interface IDefaultOptions { clientOptions: IClientOptions; } +export interface IFile { + file: Buffer; + name: string; +} + export interface IMakeRequestOptions extends IRequestOptions { method: ApiMethods; } @@ -23,17 +28,19 @@ export interface IRequestOptions { requireAuth?: boolean; body?: unknown; headers?: Record; - files?: { - file: Buffer; - name: string; - }[]; + files?: IFile[]; +} + +// Api Rest Request Interfaces +// TODO: Finish this up +export interface IApiCreateMessage { + content: string; } // Enums // Type Aliases export type ApiMethods = 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT' ; -export type Primitives = string | number | boolean | bigint | symbol | undefined | null; // eslint-disable-next-line @typescript-eslint/ban-types export type Builtin = Primitives | Function | Date | Error | RegExp; export type DeepRequired = T extends Builtin @@ -56,4 +63,4 @@ export type DeepRequired = T extends Builtin : T extends {} ? { [K in keyof T]-?: DeepRequired } : NonNullable; - +export type Primitives = string | number | boolean | bigint | symbol | undefined | null;