@amityco/ts-sdk-react-native
Version:
Amity Social Cloud Typescript SDK
67 lines (53 loc) • 1.55 kB
text/typescript
export {};
export const enum JoinRequestStatusEnum {
Pending = 'pending',
Approved = 'approved',
Rejected = 'rejected',
Cancelled = 'cancelled',
}
export const enum JoinResultStatusEnum {
Success = 'success',
Pending = 'pending',
}
declare global {
namespace Amity {
type JoinRequestStatus = JoinRequestStatusEnum;
type JoinResultStatus = JoinResultStatusEnum;
type JoinRequestType = 'communityJoinRequest';
type JoinResult = {
status: Amity.JoinResultStatus;
request?: Amity.JoinRequest;
};
type RawJoinRequest = {
_id: string;
createdAt: Amity.timestamp;
joinRequestId: string;
networkId: string;
requestorId: string;
requestorInternalId: string;
requestorPublicId: string;
respondedAt: Amity.timestamp | null;
responderId: string | null;
responderInternalId: string | null;
responderPublicId: string | null;
status: Amity.JoinRequestStatus;
targetId: string;
targetType: string;
type: Amity.JoinRequestType;
updatedAt: Amity.timestamp;
userId: string;
};
type InternalJoinRequest = Omit<RawJoinRequest, '_id'>;
type JoinRequest = Omit<Amity.InternalJoinRequest, 'responderId'> &
Amity.JoinRequestLinkedObject & {
user?: Amity.User;
feeds?: Amity.Feed[];
files?: Amity.File[];
};
type JoinRequestLinkedObject = {
cancel: () => Promise<void>;
approve: () => Promise<void>;
reject: () => Promise<void>;
};
}
}