@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,
};
};