NewspaperViewModel.ets 3.19 KB
import { Logger, ResourcesUtils } from 'wdKit';
import { ResponseDTO } from 'wdNetwork';
import { NewspaperListBean, NewspaperTimeInfoBean } from 'wdBean';
import { PageRepository } from '../repository/PageRepository';

const TAG = 'NewspaperViewModel';

export class NewspaperViewModel {
  static getNewspaperTimeFromLocal(context: Context): NewspaperTimeInfoBean[] {
    Logger.info(TAG, `getNewspaperTimeFromLocal start`);
    let newspaperTimeInfo: ResponseDTO<NewspaperTimeInfoBean[]> | null = ResourcesUtils.getResourcesJsonSync<ResponseDTO<NewspaperTimeInfoBean[]>>(context, 'newspaper_info.json');
    if (!newspaperTimeInfo || !newspaperTimeInfo.data) {
      Logger.info(TAG, `getNewspaperTimeFromLocal List is empty`);
      return []
    }
    return newspaperTimeInfo.data
  }

  static async getNewspaperTime(): Promise<NewspaperTimeInfoBean[]> {
    return new Promise<NewspaperTimeInfoBean[]>((success, error) => {
      Logger.info(TAG, `getNavData start`);
      PageRepository.fetchNewspaperInfo().then((resDTO: ResponseDTO<NewspaperTimeInfoBean[]>) => {
        if (!resDTO || !resDTO.data) {
          Logger.error(TAG, 'getNewspaperTime then navResDTO is empty');
          error('resDTO is empty');
          return
        }
        if (resDTO.code != 0) {
          Logger.error(TAG, `getNewspaperTime then code:${resDTO.code}, message:${resDTO.message}`);
          error('resDTO Response Code is failure');
          return
        }
        Logger.info(TAG, "getNewspaperTime then,navResDTO.timestamp:" + resDTO.timestamp);
        success(resDTO.data);
      }).catch((err: Error) => {
        Logger.error(TAG, `getNewspaperTime catch, error.name : ${err.name},  error.message:${err.message}`);
        error(err);
      })
    })
  }

  static async getNewspaperList(date: string, pageSize: string): Promise<NewspaperListBean> {
    return new Promise<NewspaperListBean>((success, error) => {
      Logger.info(TAG, `getNavData start`);
      PageRepository.fetchNewspaperList(date, pageSize).then((resDTO: ResponseDTO<NewspaperListBean>) => {
        if (!resDTO || !resDTO.data) {
          Logger.error(TAG, 'getNewspaperList then navResDTO is empty');
          error('resDTO is empty');
          return
        }
        if (resDTO.code != 0) {
          Logger.error(TAG, `getNewspaperList then code:${resDTO.code}, message:${resDTO.message}`);
          error('resDTO Response Code is failure');
          return
        }
        // let navResStr = JSON.stringify(navResDTO);
        Logger.info(TAG, "getNewspaperList then,navResDTO.timestamp:" + resDTO.timestamp);
        success(resDTO.data);
      }).catch((err: Error) => {
        Logger.error(TAG, `getNewspaperList catch, error.name : ${err.name},  error.message:${err.message}`);
        error(err);
      })
    })
  }

  static getNewspaperListFromLocal(context: Context): NewspaperListBean {
    let newspaperListBean: ResponseDTO<NewspaperListBean> | null = ResourcesUtils.getResourcesJsonSync<ResponseDTO<NewspaperListBean>>(context, 'newspaper_datalist.json');
    if (!newspaperListBean || !newspaperListBean.data) {
      Logger.info(TAG, `getCompList compRes is empty`);
      return {} as NewspaperListBean
    }
    return newspaperListBean.data
  }


}