UNPKG

@amityco/ts-sdk-react-native

Version:

Amity Social Cloud Typescript SDK

46 lines (39 loc) 1.31 kB
import { fireEvent } from '~/core/events'; import { getActiveClient } from '~/client/api/activeClient'; import { pullFromCache, upsertInCache } from '~/cache/api'; import { InvitationStatusEnum } from '~/@types'; /* begin_public_function id: invitation.accept */ /** * ```js * import { acceptInvitation } from '@amityco/ts-sdk' * const isAccepted = await acceptInvitation(invitationId) * ``` * * Accepts a {@link Amity.Invitation} object * * @param invitationId the {@link Amity.Invitation} to accept * @returns A success boolean if the {@link Amity.Invitation} was accepted * * @category Invitation API * @async */ export const acceptInvitation = async (invitationId: Amity.Invitation['_id']): Promise<boolean> => { const client = getActiveClient(); client.log('invitation/acceptInvitation', invitationId); const { data } = await client.http.post<{ success: boolean }>( `/api/v1/invitations/${invitationId}/accept`, ); const invitation = pullFromCache<Amity.InternalInvitation>([ 'invitation', 'get', invitationId, ])?.data; if (invitation) { upsertInCache(['invitation', 'get', invitationId], { status: InvitationStatusEnum.Approved }); fireEvent('local.invitation.updated', [invitation]); } return data.success; }; /* end_public_function */