liujian1_wd

编排底层能力

... ... @@ -10,6 +10,7 @@
"wdConstant": "file:../wdConstant",
"wdKit": "file:../wdKit",
"wdBean": "file:../wdBean",
"wdNetwork": "file:../wdNetwork",
"wdRouter": "file:../wdRouter"
}
}
... ...
import { GroupDTO, NavigationBody } from 'wdBean';
import { WDHttp } from 'wdNetwork';
export class PageRepository {
static fetchNavigationDataApi(url: string) {
return WDHttp.Request.get<WDHttp.ResponseDTO<NavigationBody>>(url)
};
static fetchPageData(url: string) {
return WDHttp.Request.get<WDHttp.ResponseDTO<GroupDTO>>(url)
};
}
\ No newline at end of file
... ...
import { BottomNavBean, GroupDTO, NavigationBody } from 'wdBean';
import { Logger, ResourcesUtils } from 'wdKit';
import { ResponseDTO } from 'wdNetwork';
import { ResponseDTO, WDHttp } from 'wdNetwork';
import { PageRepository } from '../repository/PageRepository';
import http from '@ohos.net.http';
import { BusinessError } from '@ohos.base';
const TAG = 'PageViewModel';
... ... @@ -24,6 +27,35 @@ export class PageViewModel {
return compRes.data.bottomNavList
}
static getNavData(url: string): Promise<NavigationBody> {
return new Promise<NavigationBody>((success, error) => {
Logger.info(TAG, `getNavData start`);
PageRepository.fetchNavigationDataApi(url).then((navResDTO: WDHttp.ResponseDTO<NavigationBody>) => {
if (!navResDTO) {
Logger.error(TAG, 'getNavData then navResDTO is empty');
error('navResDTO is empty');
return
}
if (navResDTO.code != http.ResponseCode.OK) {
Logger.error(TAG, `getNavData then code:${navResDTO.code}, message:${navResDTO.message}`);
error('navResDTO Response Code is failure');
return
}
if (!navResDTO.body?.bottomNavList) {
error('navResDTO list is empty');
return
}
// let navResStr = JSON.stringify(navResDTO);
Logger.info(TAG, "getNavData then,navResDTO.timeStamp:" + navResDTO.timeStamp);
let navigationBean = navResDTO.body
success(navigationBean);
}).catch((err: BusinessError) => {
Logger.error(TAG, `fetchNavigationDataApi catch, error.code : ${err.code}, error.message:${err.message}`);
error(err);
})
})
}
/**
* Get Group data.
*
... ... @@ -38,8 +70,33 @@ export class PageViewModel {
Logger.info(TAG, `getCompList getResourcesJson compRes : ${JSON.stringify(compRes)}`);
return compRes.data
}
static getPageData(url: string): Promise<GroupDTO> {
return new Promise<GroupDTO>((success, error) => {
PageRepository.fetchPageData(url).then((resDTO: WDHttp.ResponseDTO<GroupDTO>) => {
if (!resDTO) {
Logger.error(TAG, 'getPageData then resDTO is empty');
error("page data is empty");
return
}
if (resDTO.code != http.ResponseCode.OK || !resDTO.body) {
Logger.error(TAG, `getPageData then code:${resDTO.code}, message:${resDTO.message}`);
error(`get page data error code:${resDTO.code}, message:${resDTO.message}`);
return
}
Logger.info(TAG, "getPageData then,resDTO.timeStamp:" + resDTO.timeStamp);
success(resDTO.body);
}).catch((err: BusinessError) => {
Logger.error(TAG, `getPageData catch, error.code : ${err.code}, error.message:${err.message}`);
error(err);
})
})
}
}
let pageViewModel = new PageViewModel();
export default pageViewModel as PageViewModel;
\ No newline at end of file
... ...