Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | import createClient from "openapi-fetch"; import { paths } from "./types/MessagingGateway.gen"; import { LineWebhookMessage, LineWebhookMessageRepository, } from "../domain/types/Line"; import { Event } from "@line/bot-sdk/dist/webhook/api"; export class MessagingGatewayClient implements LineWebhookMessageRepository { readonly client; constructor( private consumer: string, origin?: string ) { this.client = createClient<paths>({ baseUrl: origin || "https://messaging-gateway.ktnet.info", }); } async fetchWebhookMessages(channelId: string): Promise<LineWebhookMessage[]> { const { data, error } = await this.client.GET( "/api/line/webhook/{channelId}/messages/new", { params: { path: { channelId }, query: { consumer: this.consumer, max_idle_time_ms: 5 * 60 * 1000 }, }, } ); if (error) { throw new Error(error.message); } if (!data || !data?.messages) { return []; } return data.messages.map((msg) => ({ messageId: msg.messageId || "", signature: msg.signature, destination: msg.destination, events: msg.events.map((e) => e as Event), })); } async deleteWebhookMessage( channelId: string, messageId: string ): Promise<void> { const { data, error } = await this.client.DELETE( "/api/line/webhook/{channelId}/messages/{messageId}", { params: { path: { channelId, messageId }, }, } ); if (error) { throw new Error(error.message); } } } |