UNPKG

dm-web-react

Version:

The DM web client with React.

153 lines (143 loc) 6.53 kB
import { DefineService } from "./defineService"; import { CdnSliceConfigDto } from "../modules/bond/models/dto/cdnSliceConfigDto"; import { plainToClass } from "class-transformer"; import { RestResponse } from "../models/dto/restResponse"; import { BinlogWrapperDto } from "../modules/bond/models/dto/binlogWrapperDto"; import { ObjectUtils, StringUtils } from "ts-commons"; import { VCardDto } from "../models/dto/vcardDto"; import { DMLiteConfigDto } from "../models/dto/dmliteConfigDto"; export class HttpService { private static instance = new HttpService(); public static get Instance() { return this.instance; } private readonly apiHost: string; constructor() { this.apiHost = DefineService.Instance.getApiUrl(); } // POST /api/quoteDonePrice/cdn/brokeConfig 经纪商最优报价CDN配置 public async getBrokeConfig(userId: string, position: number): Promise<CdnSliceConfigDto> { try { const response = await fetch(`${this.apiHost}/bond-web/api/quoteDonePrice/cdn/brokeConfig?position=${position}`, { method: "POST", headers: { userId: userId, }, }); const json = await response.json(); const result = plainToClass<RestResponse<any>, object>(RestResponse, json); if (result.code === "0" && result.data) { const config = plainToClass<CdnSliceConfigDto, object>(CdnSliceConfigDto, result.datas || result.data); return new Promise<CdnSliceConfigDto>(resolve => resolve(config)); } else { return new Promise<CdnSliceConfigDto>((resolve, reject) => reject(result.message)); } } catch (e) { return new Promise<CdnSliceConfigDto>((resolve, reject) => reject(e)); } } // POST /api/quoteDonePrice/cdn/sliceConfig 基础信息CDN配置 public async getSliceConfig(userId: string, position: number): Promise<CdnSliceConfigDto> { try { const response = await fetch(`${this.apiHost}/bond-web/api/quoteDonePrice/cdn/sliceConfig?position=${position}`, { method: "POST", headers: { userId: userId, }, }); const json = await response.json(); const result = plainToClass<RestResponse<any>, object>(RestResponse, json); if (result.code === "0" && result.data) { const config = plainToClass<CdnSliceConfigDto, object>(CdnSliceConfigDto, result.data); return new Promise<CdnSliceConfigDto>(resolve => resolve(config)); } else { return new Promise<CdnSliceConfigDto>((resolve, reject) => reject(result.message)); } } catch (e) { return new Promise<CdnSliceConfigDto>((resolve, reject) => reject(e)); } } public async getBondInfoBinlogs(userId: string, position: number, limit: number): Promise<BinlogWrapperDto> { try { const response = await fetch(`${this.apiHost}/bond-web/api/quoteDonePrice/binlog/basicList?position=${position}&limit=${limit}`, { method: "POST", headers: { userId: userId, }, }); const json = await response.json(); const result = plainToClass<RestResponse<any>, object>(RestResponse, json); if (result.code === "0") { if (ObjectUtils.isNullOrUndefined(result.data) || StringUtils.isBlank(ObjectUtils.toSafeString(result.data))) { const config = new BinlogWrapperDto(); config.count = 0; config.binlogs = []; return new Promise<BinlogWrapperDto>(resolve => resolve(config)); } const config = plainToClass<BinlogWrapperDto, object>(BinlogWrapperDto, result.data); return new Promise<BinlogWrapperDto>(resolve => resolve(config)); } else { return new Promise<BinlogWrapperDto>((resolve, reject) => reject(result.message)); } } catch (e) { return new Promise<BinlogWrapperDto>((resolve, reject) => reject(e)); } } public async getBrokerMarketBestPriceBinlogs(userId: string, position: number, limit: number): Promise<BinlogWrapperDto> { try { const response = await fetch(`${this.apiHost}/bond-web/api/quoteDonePrice/binlog/bestPrive/brokeList?position=${position}&limit=${limit}`, { method: "POST", headers: { userId: userId, }, }); const json = await response.json(); const result = plainToClass<RestResponse<any>, object>(RestResponse, json); if (result.code === "0") { if (ObjectUtils.isNullOrUndefined(result.data) || StringUtils.isBlank(ObjectUtils.toSafeString(result.data))) { const config = new BinlogWrapperDto(); config.count = 0; config.binlogs = []; return new Promise<BinlogWrapperDto>(resolve => resolve(config)); } const config = plainToClass<BinlogWrapperDto, object>(BinlogWrapperDto, result.data); return new Promise<BinlogWrapperDto>(resolve => resolve(config)); } else { return new Promise<BinlogWrapperDto>((resolve, reject) => reject(result.message)); } } catch (e) { return new Promise<BinlogWrapperDto>((resolve, reject) => reject(e)); } } public async getVcard(): Promise<VCardDto> { try { const response = await fetch(`${this.apiHost}/bond-web/api/bond/gateway/dmVcardHandler/getVCard`, { method: "POST", credentials: "include", }); const json = await response.json(); const result = plainToClass<RestResponse<any>, object>(RestResponse, json); if (result.code === "0") { const config = plainToClass<VCardDto, object>(VCardDto, result.datas || result.data); return new Promise<VCardDto>(resolve => resolve(config)); } else { return new Promise<VCardDto>((resolve, reject) => reject(result.message)); } } catch (e) { return new Promise<VCardDto>((resolve, reject) => reject(e)); } } public async getDMLiteConfig(): Promise<DMLiteConfigDto> { try { const response = await fetch(`${this.apiHost}/dashboard/dmlitePreloading/config`, { method: "GET", credentials: "include", }); const json = await response.json(); const result = plainToClass<DMLiteConfigDto, object>(DMLiteConfigDto, json); return new Promise<DMLiteConfigDto>(resolve => resolve(result)); } catch (e) { return new Promise<DMLiteConfigDto>((resolve, reject) => reject(e)); } } }