UNPKG

@line/bot-sdk

Version:
222 lines (204 loc) 8.63 kB
/** * LIFF server API * LIFF Server API. * * The version of the OpenAPI document: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ /* tslint:disable:no-unused-locals */ import { AddLiffAppRequest } from "../model/addLiffAppRequest.js"; import { AddLiffAppResponse } from "../model/addLiffAppResponse.js"; import { GetAllLiffAppsResponse } from "../model/getAllLiffAppsResponse.js"; import { UpdateLiffAppRequest } from "../model/updateLiffAppRequest.js"; import * as Types from "../../types.js"; import { ensureJSON, buildPath } from "../../utils.js"; import { Readable } from "node:stream"; import HTTPFetchClient, { convertResponseToReadable, mergeHeaders, } from "../../http-fetch.js"; // =============================================== // This file is autogenerated - Please do not edit // =============================================== interface httpClientConfig { /** * Base URL for requests. * Defaults to 'https://api.line.me'. * You can override this for testing or to use a mock server. */ baseURL?: string; /** * Channel access token used for authorization. */ channelAccessToken: string; /** * Extra headers merged into every request. */ defaultHeaders?: Record<string, string>; } /** * @see {@link LineBotClient} for a unified interface that wraps this client. */ export class LiffClient { private httpClient: HTTPFetchClient; /** * Initializes a new `LiffClient`. * * @param config Configuration for this API client. * @param config.baseURL The base URL for requests. Defaults to `https://api.line.me`. * @param config.channelAccessToken The channel access token used for authorization. * @param config.defaultHeaders Extra headers merged into every request. * * @example * const client = new LiffClient({ * channelAccessToken: process.env.LINE_CHANNEL_ACCESS_TOKEN!, * }); */ constructor(config: httpClientConfig) { const baseURL = config.baseURL || "https://api.line.me"; const defaultHeaders = mergeHeaders(config.defaultHeaders, { Authorization: "Bearer " + config.channelAccessToken, }); this.httpClient = new HTTPFetchClient({ defaultHeaders: defaultHeaders, baseURL: baseURL, }); } /** * Adding the LIFF app to a channel * Calls `POST https://api.line.me/liff/v1/apps`. * To inspect the HTTP status code or response headers, use {@link addLIFFAppWithHttpInfo}. * @summary Create LIFF app * @param addLiffAppRequest * @returns A promise resolving to the response body. * @see <a href="https://developers.line.biz/en/reference/liff-server/#add-liff-app">LINE Developers documentation</a> */ public async addLIFFApp( addLiffAppRequest: AddLiffAppRequest, ): Promise<AddLiffAppResponse> { return (await this.addLIFFAppWithHttpInfo(addLiffAppRequest)).body; } /** * Adding the LIFF app to a channel * Calls `POST https://api.line.me/liff/v1/apps`. * This method returns the response body together with the underlying `httpResponse`. * @summary Create LIFF app * @param addLiffAppRequest * @returns A promise resolving to the response body together with the underlying `httpResponse`. * @see <a href="https://developers.line.biz/en/reference/liff-server/#add-liff-app">LINE Developers documentation</a> */ public async addLIFFAppWithHttpInfo( addLiffAppRequest: AddLiffAppRequest, ): Promise<Types.ApiResponseType<AddLiffAppResponse>> { const params = addLiffAppRequest; const res = await this.httpClient.post("/liff/v1/apps", params); const text = await res.text(); const parsedBody = text ? JSON.parse(text) : null; return { httpResponse: res, body: parsedBody }; } /** * Deletes a LIFF app from a channel. * Calls `DELETE https://api.line.me/liff/v1/apps/{liffId}`. * To inspect the HTTP status code or response headers, use {@link deleteLIFFAppWithHttpInfo}. * @summary Delete LIFF app from a channel * @param liffId ID of the LIFF app to be updated * @returns A promise resolving to the response body. * @see <a href="https://developers.line.biz/en/reference/liff-server/#delete-liff-app">LINE Developers documentation</a> */ public async deleteLIFFApp( liffId: string, ): Promise<Types.MessageAPIResponseBase> { return (await this.deleteLIFFAppWithHttpInfo(liffId)).body; } /** * Deletes a LIFF app from a channel. * Calls `DELETE https://api.line.me/liff/v1/apps/{liffId}`. * This method returns the response body together with the underlying `httpResponse`. * @summary Delete LIFF app from a channel * @param liffId ID of the LIFF app to be updated * @returns A promise resolving to the response body together with the underlying `httpResponse`. * @see <a href="https://developers.line.biz/en/reference/liff-server/#delete-liff-app">LINE Developers documentation</a> */ public async deleteLIFFAppWithHttpInfo( liffId: string, ): Promise<Types.ApiResponseType<Types.MessageAPIResponseBase>> { const requestPath = buildPath("/liff/v1/apps/{liffId}", { liffId: liffId, }); const res = await this.httpClient.delete(requestPath); const text = await res.text(); const parsedBody = text ? JSON.parse(text) : null; return { httpResponse: res, body: parsedBody }; } /** * Gets information on all the LIFF apps added to the channel. * Calls `GET https://api.line.me/liff/v1/apps`. * To inspect the HTTP status code or response headers, use {@link getAllLIFFAppsWithHttpInfo}. * @summary Get all LIFF apps * @returns A promise resolving to the response body. * @see <a href="https://developers.line.biz/en/reference/liff-server/#get-all-liff-apps">LINE Developers documentation</a> */ public async getAllLIFFApps(): Promise<GetAllLiffAppsResponse> { return (await this.getAllLIFFAppsWithHttpInfo()).body; } /** * Gets information on all the LIFF apps added to the channel. * Calls `GET https://api.line.me/liff/v1/apps`. * This method returns the response body together with the underlying `httpResponse`. * @summary Get all LIFF apps * @returns A promise resolving to the response body together with the underlying `httpResponse`. * @see <a href="https://developers.line.biz/en/reference/liff-server/#get-all-liff-apps">LINE Developers documentation</a> */ public async getAllLIFFAppsWithHttpInfo(): Promise< Types.ApiResponseType<GetAllLiffAppsResponse> > { const res = await this.httpClient.get("/liff/v1/apps"); const text = await res.text(); const parsedBody = text ? JSON.parse(text) : null; return { httpResponse: res, body: parsedBody }; } /** * Update LIFF app settings * Calls `PUT https://api.line.me/liff/v1/apps/{liffId}`. * To inspect the HTTP status code or response headers, use {@link updateLIFFAppWithHttpInfo}. * @summary Update LIFF app from a channel * @param liffId ID of the LIFF app to be updated * @param updateLiffAppRequest * @returns A promise resolving to the response body. * @see <a href="https://developers.line.biz/en/reference/liff-server/#update-liff-app">LINE Developers documentation</a> */ public async updateLIFFApp( liffId: string, updateLiffAppRequest: UpdateLiffAppRequest, ): Promise<Types.MessageAPIResponseBase> { return (await this.updateLIFFAppWithHttpInfo(liffId, updateLiffAppRequest)) .body; } /** * Update LIFF app settings * Calls `PUT https://api.line.me/liff/v1/apps/{liffId}`. * This method returns the response body together with the underlying `httpResponse`. * @summary Update LIFF app from a channel * @param liffId ID of the LIFF app to be updated * @param updateLiffAppRequest * @returns A promise resolving to the response body together with the underlying `httpResponse`. * @see <a href="https://developers.line.biz/en/reference/liff-server/#update-liff-app">LINE Developers documentation</a> */ public async updateLIFFAppWithHttpInfo( liffId: string, updateLiffAppRequest: UpdateLiffAppRequest, ): Promise<Types.ApiResponseType<Types.MessageAPIResponseBase>> { const requestPath = buildPath("/liff/v1/apps/{liffId}", { liffId: liffId, }); const params = updateLiffAppRequest; const res = await this.httpClient.put(requestPath, params); const text = await res.text(); const parsedBody = text ? JSON.parse(text) : null; return { httpResponse: res, body: parsedBody }; } }