52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import axios from 'axios';
|
|
import AppResponse from 'src/response/app-response';
|
|
import { Bid } from '../entities/bid.entity';
|
|
import { BidsService } from '../services/bids.service';
|
|
|
|
@Injectable()
|
|
export class AllBidsApi {
|
|
constructor(private readonly bidsService: BidsService) {}
|
|
|
|
async getHistoriesBid(lot_id: Bid['lot_id']) {
|
|
const bid = await this.bidsService.bidsRepo.findOne({
|
|
where: { lot_id },
|
|
relations: { web_bid: true },
|
|
});
|
|
|
|
try {
|
|
switch (bid.web_bid.origin_url) {
|
|
// GRAYS
|
|
case 'https://www.grays.com': {
|
|
const response = await axios({
|
|
url: `https://www.grays.com/api/LotInfo/GetBiddingHistory?lotId=${lot_id}¤cyCode=AUD`,
|
|
});
|
|
|
|
if (response.data && response.data?.Bids) {
|
|
return AppResponse.toResponse(response.data.Bids);
|
|
}
|
|
|
|
return AppResponse.toResponse([]);
|
|
}
|
|
|
|
// PICKLES
|
|
case 'https://www.pickles.com.au': {
|
|
const response = await axios({
|
|
url: `https://www.pickles.com.au/PWR-Web/services/api/bidHistoryService/bidHistory?item=${lot_id}`,
|
|
});
|
|
|
|
if (response.data) {
|
|
return AppResponse.toResponse(response.data.Bids);
|
|
}
|
|
|
|
return AppResponse.toResponse([]);
|
|
}
|
|
default:
|
|
return AppResponse.toResponse([]);
|
|
}
|
|
} catch (error) {
|
|
return AppResponse.toResponse([]);
|
|
}
|
|
}
|
|
}
|