CommonDataService.ets 1.55 KB
import { CompDTO } from '../bean/CompDTO';
import { DataSourceRequest } from '../bean/DataSourceRequest';

import {Logger} from 'wdKit';
import {WDHttp} from 'wdNetwork';
import { LayoutCallback } from './LayoutCallback';
import { BusinessError } from '@ohos.base';
import http from '@ohos.net.http';
import { CompRequest } from '../request/CompRequest';

const TAG = 'CommonDataService';

/**
 * 数据源服务
 */
export class CommonDataService {
  public loadDataSource<T>(compDTO: CompDTO, request: DataSourceRequest, callback: LayoutCallback<T>): boolean {
    CompRequest.fetchDataSource<T>(compDTO, request).then((resDTO: WDHttp.ResponseDTO<T>) => {
      if (!resDTO) {
        Logger.error(TAG, 'loadDataSource then resDTO is empty');
        if (callback) {
          callback.onFailed(WDHttp.ErrorCode.FAILED, 'Empty response');
        }
        return
      }
      if (resDTO.code != http.ResponseCode.OK || !resDTO.body) {
        Logger.error(TAG, `loadDataSource then code:${resDTO.code}, message:${resDTO.message}`);
        if (callback) {
          callback.onFailed(resDTO.code, resDTO.message)
        }
        return
      }
      Logger.info(TAG, "loadDataSource then,resDTO.timeStamp:" + resDTO.timeStamp);
      if (callback) {
        callback.onSuccess(resDTO.body);
      }
    }).catch((error: BusinessError) => {
      Logger.error(TAG, `loadDataSource catch, error.code : ${error.code},  error.message:${error.message}`);
      if (callback) {
        callback.onFailed(WDHttp.ErrorCode.FAILED, error.message);
      }
    })
    return true;
  }


}