@amityco/ts-sdk-react-native
Version: 
Amity Social Cloud Typescript SDK
38 lines (32 loc) • 903 B
text/typescript
import { pullFromCache } from '~/cache/api/pullFromCache';
import { getActiveClient } from '~/client/api/activeClient';
import { ASCApiError } from '~/core/errors';
/**
 *
 * get current user's membership data
 *
 * @returns the {@link Amity.Membership<'channel'>} objects
 *
 * @category Channel API
 * @async
 */
export const getMyMembership = (channelId: string): Amity.Cached<Amity.Membership<'channel'>> => {
  const client = getActiveClient();
  client.log('channel/getMyMembership.locally');
  const cacheChannelUser = pullFromCache<Amity.Membership<'channel'>>([
    'channelUsers',
    'get',
    `${channelId}#${client.userId}`,
  ]);
  if (!cacheChannelUser) {
    throw new ASCApiError(
      'Item not found!',
      Amity.ServerError.ITEM_NOT_FOUND,
      Amity.ErrorLevel.ERROR,
    );
  }
  return {
    data: cacheChannelUser.data,
    cachedAt: cacheChannelUser.cachedAt,
  };
};