share.ts 1.23 KB
import { ViewTypeEnum } from "@/enums/external/viewEnum"
import { defHttp } from "@/utils/external/http/axios"
import { isShareMode } from "@/views/share/hook"

enum Api {
  TOKEN = '/auth/login/public',

  CHECK = '/share/check',

  SHARE_CONTENT = '/share'
}

/**
 * @description 获取token
 * @param publicId string
 */
export const getPublicToken = (publicId: string) => {
  return defHttp.post<Record<'token' | 'refreshToken', string>>({
    url: Api.TOKEN,
    data: { publicId }
  }, { joinPrefix: false, withShareToken: isShareMode() })
}

/**
 * @description 检查时候需要访问令牌
 * @param id string
 */
export const checkSharePageNeedAccessToken = (id: string) => {
  return defHttp.get<{ data: boolean }>({
    url: `${Api.CHECK}/${ViewTypeEnum.LARGE_SCREEN}/${id}`
  }, { withShareToken: isShareMode() })
}

/**
 * @description 获取分享的数据内容
 * @param options 
 */
export const getShareContentData = (options: Record<'id' | 'accessCredentials', string>) => {
  const { accessCredentials } = options
  return defHttp.get<{ data: any }>({
    url: `${Api.SHARE_CONTENT}/${ViewTypeEnum.LARGE_SCREEN}/share_data/${options.id}`,
    params: accessCredentials ? { accessCredentials } : {}
  }, { withShareToken: isShareMode() })
}