UNPKG

@amityco/ts-sdk-react-native

Version:

Amity Social Cloud Typescript SDK

46 lines (40 loc) 1.38 kB
import { getActiveClient } from '~/client/api'; import { ingestInCache } from '~/cache/api/ingestInCache'; import { fireEvent } from '~/core/events'; import { prepareSubChannelPayload } from '../utils'; /* begin_public_function id: subchannel.create */ /** * ```js * import { createSubChannel } from '@amityco/ts-sdk-react-native' * const created = await createSubChannel({ channelId: 'foobar', name: 'foobar' }) * ``` * * Creates an {@link Amity.SubChannel} * * @param bundle The data necessary to create a new {@link Amity.SubChannel} * @returns The newly created {@link Amity.SubChannel} * * @category Channel API * @async */ export const createSubChannel = async <T extends Amity.ChannelType>( bundle: Pick<Amity.SubChannel, 'channelId' | 'displayName'>, ): Promise<Amity.Cached<Amity.SubChannel>> => { const client = getActiveClient(); client.log('user/createSubChannel', bundle); const response = await client.http.post<Amity.SubChannelPayload>('/api/v5/message-feeds', { channelId: bundle.channelId, name: bundle.displayName, }); const data = await prepareSubChannelPayload(response.data); const cachedAt = client.cache && Date.now(); if (client.cache) ingestInCache(data, { cachedAt }); fireEvent('message-feed.created', response.data); return { data: data.messageFeeds[0], cachedAt, }; }; /* end_public_function */