@amityco/ts-sdk-react-native
Version:
Amity Social Cloud Typescript SDK
32 lines (30 loc) • 1.05 kB
text/typescript
import { pullFromCache } from '~/cache/api';
import { userLinkedObject } from './userLinkedObject';
import { approveJoinRequest } from '~/communityRepository/joinRequest/internalAPI/approveJoinRequest';
import { cancelJoinRequest } from '~/communityRepository/joinRequest/internalAPI/cancelJoinRequest';
import { rejectJoinRequest } from '~/communityRepository/joinRequest/internalAPI/rejectJoinRequest';
export const joinRequestLinkedObject = (
joinRequest: Amity.InternalJoinRequest,
): Amity.JoinRequest => {
return {
...joinRequest,
get user(): Amity.User | undefined {
const user = pullFromCache<Amity.InternalUser>([
'user',
'get',
joinRequest.requestorPublicId,
])?.data;
if (!user) return undefined;
return userLinkedObject(user);
},
cancel: async () => {
await cancelJoinRequest(joinRequest);
},
approve: async () => {
await approveJoinRequest(joinRequest);
},
reject: async () => {
await rejectJoinRequest(joinRequest);
},
};
};