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