@amityco/ts-sdk-react-native
Version:
Amity Social Cloud Typescript SDK
46 lines (39 loc) • 1.31 kB
text/typescript
import { fireEvent } from '~/core/events';
import { InvitationStatusEnum } from '~/@types';
import { pullFromCache, upsertInCache } from '~/cache/api';
import { getActiveClient } from '~/client/api/activeClient';
/* begin_public_function
id: invitation.reject
*/
/**
* ```js
* import { rejectInvitation } from '@amityco/ts-sdk'
* const isRejected = await rejectInvitation(invitationId)
* ```
*
* Rejects a {@link Amity.Invitation} object
*
* @param invitationId the {@link Amity.Invitation} to reject
* @returns A success boolean if the {@link Amity.Invitation} was rejected
*
* @category Invitation API
* @async
*/
export const rejectInvitation = async (invitationId: Amity.Invitation['_id']): Promise<boolean> => {
const client = getActiveClient();
client.log('invitation/rejectInvitation', invitationId);
const { data } = await client.http.post<{ success: boolean }>(
`/api/v1/invitations/${invitationId}/reject`,
);
const invitation = pullFromCache<Amity.InternalInvitation>([
'invitation',
'get',
invitationId,
])?.data;
if (invitation) {
upsertInCache(['invitation', 'get', invitationId], { status: InvitationStatusEnum.Rejected });
fireEvent('local.invitation.updated', [invitation]);
}
return data.success;
};
/* end_public_function */