share.ts 1.09 KB
import { defHttp } from '/@/utils/http/axios';
import { ViewTypeEnum } from '/@/views/sys/share/config/config';
import { isShareMode } from '/@/views/sys/share/hook';

enum Api {
  CHECK = '/share/check',
  PUBLIC_LOGIN = '/auth/login/public',
  SHARE_CONTENT = '/share',
}

export const checkShareAccessToken = (type: ViewTypeEnum, id: string) => {
  return defHttp.get<Record<'data', boolean>>(
    {
      url: `${Api.CHECK}/${type}/${id}`,
    },
    {
      withShareToken: isShareMode(),
    }
  );
};

export const sharePageLogin = (publicId: string) => {
  return defHttp.post<Record<'token' | 'refreshToken', string>>(
    {
      url: Api.PUBLIC_LOGIN,
      data: { publicId },
    },
    {
      joinPrefix: false,
      withShareToken: isShareMode(),
    }
  );
};

export const getShareContent = (record: Record<'accessCredentials' | 'id', string>) => {
  const { id, accessCredentials } = record;
  return defHttp.get(
    {
      url: `${Api.SHARE_CONTENT}/${ViewTypeEnum.DATA_BOARD}/share_data/${id}`,
      params: { accessCredentials },
    },
    {
      withShareToken: isShareMode(),
    }
  );
};