mirror of
https://github.com/mempool/mempool.git
synced 2025-04-09 12:30:13 +02:00
Convert v3 api into v1
This commit is contained in:
parent
9a77135d30
commit
1dd7a6ebac
@ -1,3 +1,4 @@
|
||||
import config from '../../config';
|
||||
import { query } from '../../utils/axios-query';
|
||||
import { ConversionFeed, ConversionRates } from '../price-updater';
|
||||
|
||||
@ -37,19 +38,26 @@ const emptyRates = {
|
||||
ZAR: -1,
|
||||
};
|
||||
|
||||
class FreeCurrencyApi implements ConversionFeed {
|
||||
private API_KEY: string;
|
||||
private apiUrlPrefix: string = `https://api.freecurrencyapi.com/v1/`;
|
||||
|
||||
constructor(apiKey: string, paid = false) {
|
||||
this.API_KEY = apiKey;
|
||||
if (paid) {
|
||||
this.apiUrlPrefix = `https://api.currencyapi.com/v3/`;
|
||||
}
|
||||
type PaidCurrencyData = {
|
||||
[key: string]: {
|
||||
code: string;
|
||||
value: number;
|
||||
}
|
||||
};
|
||||
|
||||
type FreeCurrencyData = {
|
||||
[key: string]: number;
|
||||
};
|
||||
|
||||
class FreeCurrencyApi implements ConversionFeed {
|
||||
private API_KEY = config.FIAT_PRICE.API_KEY;
|
||||
private PAID = config.FIAT_PRICE.PAID;
|
||||
private API_URL_PREFIX: string = this.PAID ? `https://api.currencyapi.com/v3/` : `https://api.freecurrencyapi.com/v1/`;
|
||||
|
||||
constructor() { }
|
||||
|
||||
public async $getQuota(): Promise<any> {
|
||||
const response = await query(`${this.apiUrlPrefix}status?apikey=${this.API_KEY}`);
|
||||
const response = await query(`${this.API_URL_PREFIX}status?apikey=${this.API_KEY}`);
|
||||
if (response && response['quotas']) {
|
||||
return response['quotas'];
|
||||
}
|
||||
@ -57,21 +65,36 @@ class FreeCurrencyApi implements ConversionFeed {
|
||||
}
|
||||
|
||||
public async $fetchLatestConversionRates(): Promise<ConversionRates> {
|
||||
const response = await query(`${this.apiUrlPrefix}latest?apikey=${this.API_KEY}`);
|
||||
const response = await query(`${this.API_URL_PREFIX}latest?apikey=${this.API_KEY}`);
|
||||
if (response && response['data']) {
|
||||
if (this.PAID) {
|
||||
response['data'] = this.convertData(response['data']);
|
||||
}
|
||||
return response['data'];
|
||||
}
|
||||
return emptyRates;
|
||||
}
|
||||
|
||||
public async $fetchConversionRates(date: string): Promise<ConversionRates> {
|
||||
const response = await query(`${this.apiUrlPrefix}historical?date=${date}&apikey=${this.API_KEY}`);
|
||||
if (response && response['data'] && response['data'][date]) {
|
||||
const response = await query(`${this.API_URL_PREFIX}historical?date=${date}&apikey=${this.API_KEY}`);
|
||||
if (response && response['data'] && (response['data'][date] || this.PAID)) {
|
||||
if (this.PAID) {
|
||||
response['data'] = this.convertData(response['data']);
|
||||
response['data'][response['meta'].last_updated_at.substr(0, 10)] = response['data'];
|
||||
}
|
||||
return response['data'][date];
|
||||
}
|
||||
return emptyRates;
|
||||
}
|
||||
|
||||
private convertData(data: PaidCurrencyData): FreeCurrencyData {
|
||||
const simplifiedData: FreeCurrencyData = {};
|
||||
for (const key in data) {
|
||||
simplifiedData[key] = data[key].value;
|
||||
}
|
||||
return simplifiedData;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default FreeCurrencyApi;
|
||||
|
@ -71,7 +71,7 @@ class PriceUpdater {
|
||||
this.feeds.push(new BitfinexApi());
|
||||
this.feeds.push(new GeminiApi());
|
||||
|
||||
this.currencyConversionFeed = new FreeCurrencyApi(config.FIAT_PRICE.API_KEY, config.FIAT_PRICE.PAID);
|
||||
this.currencyConversionFeed = new FreeCurrencyApi();
|
||||
this.setCyclePosition();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user