UNPKG

@selfcommunity/api-services

Version:
141 lines (133 loc) 6.45 kB
import { SCLiveStreamConnectionDetailsType, SCLiveStreamMonthlyDurationType, SCLiveStreamType } from '@selfcommunity/types'; import { AxiosRequestConfig } from 'axios'; import { SCPaginatedResponse } from '../../types'; import { LiveStreamCreateParams, LiveStreamRemoveParticipantParams, LiveStreamSearchParams } from '../../types/liveStream'; export interface LiveStreamApiClientInterface { search(params?: LiveStreamSearchParams, config?: AxiosRequestConfig): Promise<SCPaginatedResponse<SCLiveStreamType>>; getSpecificInfo(id: number | string, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; create(data: LiveStreamCreateParams | FormData, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; update(id: number | string, data: SCLiveStreamType, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; patch(id: number | string, data: SCLiveStreamType, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; delete(id: number | string, config?: AxiosRequestConfig): Promise<any>; close(id: number | string, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; changeCover(id: number | string, data: FormData, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; join(id: number | string, config?: AxiosRequestConfig): Promise<SCLiveStreamConnectionDetailsType>; removeParticipant(id: number | string, data: LiveStreamRemoveParticipantParams | FormData, config?: AxiosRequestConfig): Promise<any>; getMonthlyDuration(config?: AxiosRequestConfig): Promise<SCLiveStreamMonthlyDurationType>; } /** * Contains all the endpoints needed to manage LiveStreams. */ export declare class LiveStreamApiClient { /** * This endpoint performs LiveStreams search * @param params * @param config */ static search(params?: LiveStreamSearchParams, config?: AxiosRequestConfig): Promise<SCPaginatedResponse<SCLiveStreamType>>; /** * This endpoint retrieves a specific LiveStream. * @param id * @param config */ static getSpecificInfo(id: number | string, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; /** * This endpoint creates an LiveStream. * @param data * @param config */ static create(data: LiveStreamCreateParams | FormData, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; /** * This endpoint updates an LiveStream. * @param id * @param data * @param config */ static update(id: number | string, data: SCLiveStreamType, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; /** * This endpoint patches an LiveStream. * @param id * @param data * @param config */ static patch(id: number | string, data: SCLiveStreamType, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; /** * This endpoint deletes an LiveStream. * @param id * @param config */ static delete(id: number | string, config?: AxiosRequestConfig): Promise<any>; /** * This endpoint allows to close permanently a room * @param id * @param config */ static close(id: number | string, config?: AxiosRequestConfig): Promise<any>; /** * This endpoint changes the LiveStream avatar * @param id * @param data * @param config */ static changeCover(id: number | string, data: FormData, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; /** * This endpoint allows to attend an LiveStream * @param id * @param config */ static join(id: number | string, config?: AxiosRequestConfig): Promise<SCLiveStreamConnectionDetailsType>; /** * This endpoint remove participant from the specified live stream. * If ban=true in the payload the user can no longer join the meet * @param id * @param data * @param config */ static removeParticipant(id: number | string, data: LiveStreamRemoveParticipantParams | FormData, config?: AxiosRequestConfig): Promise<any>; /** * This endpoint retrieves LiveStream montlhy duration. * @param config */ static getMonthlyDuration(config?: AxiosRequestConfig): Promise<SCLiveStreamMonthlyDurationType>; } /** * :::tip LiveStream service can be used in the following way: ```jsx 1. Import the service from our library: import {LiveStreamService} from "@selfcommunity/api-services"; ``` ```jsx 2. Create a function and put the service inside it! The async function `search` will return the LiveStreams matching the search query. async searchLiveStreams() { return await LiveStreamService.search(); } ``` ```jsx In case of required `params`, just add them inside the brackets. async getSpecificInfo(liveStreamId) { return await LiveStreamService.getSpecificInfo(liveStreamId); } ``` ```jsx If you need to customize the request, you can add optional config params (`AxiosRequestConfig` type). 1. Declare it(or declare them, it is possible to add multiple params) const headers = headers: {Authorization: `Bearer ${yourToken}`} 2. Add it inside the brackets and pass it to the function, as shown in the previous example! ``` ::: */ export default class LiveStreamService { static search(params?: LiveStreamSearchParams, config?: AxiosRequestConfig): Promise<SCPaginatedResponse<SCLiveStreamType>>; static getSpecificInfo(id: number | string, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; static create(data: LiveStreamCreateParams | FormData, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; static update(id: number | string, data: SCLiveStreamType, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; static patch(id: number | string, data: SCLiveStreamType, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; static delete(id: number | string, config?: AxiosRequestConfig): Promise<any>; static close(id: number | string, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; static changeCover(id: number | string, data: FormData, config?: AxiosRequestConfig): Promise<SCLiveStreamType>; static join(id: number | string, config?: AxiosRequestConfig): Promise<SCLiveStreamConnectionDetailsType>; static removeParticipant(id: number | string, data: LiveStreamRemoveParticipantParams | FormData, config?: AxiosRequestConfig): Promise<any>; static getMonthlyDuration(config?: AxiosRequestConfig): Promise<SCLiveStreamMonthlyDurationType>; }