PageRepository.ets 3.78 KB
import HashMap from '@ohos.util.HashMap';
import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork';
import { DateTimeUtils } from 'wdKit';
import { ContentDetailDTO, NavigationBodyDTO, PageDTO,InteractDataDTO, MorningEveningPaperDTO } from 'wdBean';

export class PageRepository {
  static getBottomNavGroupUrl() {
    // https: //pd-apis-uat.pdnews.cn/api/rmrb-bff-display-zh/display/zh/c/bottomNavGroup
    return HttpUrlUtils.getHost() + HttpUrlUtils.BOTTOM_NAV_PATH;
  }

  static getPageInfoUrl(pageId: string) {
    let url = HttpUrlUtils.getHost() + HttpUrlUtils.PAGE_INFO_PATH;
    // TODO 暂定只请求第一页,后续对接分页加载,参数再调整 first_load?
    url = url + "?channelStrategy=2&loadStrategy=first_load"
      + "&districtCode=" + HttpUrlUtils.getDistrictCode()
      + "&provinceCode=" + HttpUrlUtils.getProvinceCode()
      + "&cityCode=" + HttpUrlUtils.getCityCode()
      + "&refreshTime=" + DateTimeUtils.getTimeStamp()
      + "&pageId=" + pageId
    // Logger.debug("TAG", 'getCompInfoUrl url: '+url);
    return url;
  }

  static getCompInfoUrl(pageId: string, groupId: string, channelId: string, currentPage: number, pageSize: number) {
    let url = HttpUrlUtils.getHost() + HttpUrlUtils.COMP_PATH;
    // TODO 暂定只请求第一页,后续对接分页加载,参数再调整 first_load?
    url = url + "?channelStrategy=2&loadStrategy=first_load"
      + "&districtCode=" + HttpUrlUtils.getDistrictCode()
      + "&provinceCode=" + HttpUrlUtils.getProvinceCode()
      + "&cityCode=" + HttpUrlUtils.getCityCode()
      + "&refreshTime=" + DateTimeUtils.getTimeStamp()
      + "&pageId=" + pageId
      + "&groupId=" + groupId
      + "&channelId=" + channelId
      + "&pageSize=" + pageSize
      + "&pageNum=" + currentPage;
    // Logger.debug("TAG", 'getCompInfoUrl url: '+url);
    return url;
  }

  static getDetailInfoUrl(relId: string, contentId: string, relType: string) {
    let url = HttpUrlUtils.getHost() + HttpUrlUtils.DETAIL_PATH;
    url = url + "?relId=" + relId
    + "&contentId=" + contentId
    + "&relType=" + relType;
    // Logger.debug("TAG", 'getCompInfoUrl url: '+url);
    return url;
  }

  static getInteractDataUrl() {
    let url = HttpUrlUtils.getHost() + HttpUrlUtils.INTERACT_DATA_PATH;
    return url;
  }

  static fetchNavigationDataApi() {
    let url = PageRepository.getBottomNavGroupUrl();
    let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
    return WDHttp.get<ResponseDTO<NavigationBodyDTO>>(url, headers)
  };

  /**
   * 获取早晚报数据
   * @param pageId
   * @param groupId
   * @param channelId
   * @param currentPage
   * @param pageSize
   * @returns
   */
  static fetchMorningEveningPaperData(pageId: string) {
    let url = PageRepository.getPageInfoUrl(pageId)
    let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
    return WDHttp.get<ResponseDTO<MorningEveningPaperDTO>>(url, headers)
  };

  static fetchPageData(pageId: string, groupId: string, channelId: string, currentPage: number, pageSize: number) {
    let url = PageRepository.getCompInfoUrl(pageId, groupId, channelId, currentPage, pageSize)
    let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
    return WDHttp.get<ResponseDTO<PageDTO>>(url, headers)
  };

  static fetchDetailData(relId: string, contentId: string, relType: string) {
    let url = PageRepository.getDetailInfoUrl(relId, contentId, relType)
    let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
    return WDHttp.get<ResponseDTO<ContentDetailDTO>>(url, headers)
  };

  static fetchInteractData(param: object) {
    let url = PageRepository.getInteractDataUrl()
    let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
    return WDHttp.post<ResponseDTO<InteractDataDTO[]>>(url, param, headers)
  };
}