52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import { fetchJson } from '../../auth/api-client';
|
|
import type {
|
|
AmapConfig,
|
|
HydrogenHeatmapMeta,
|
|
HydrogenHeatmapMetric,
|
|
HydrogenHeatmapResponse,
|
|
HydrogenNearbyResponse,
|
|
HydrogenPayer,
|
|
} from './types';
|
|
|
|
const BASE = '/api/hydrogen-heatmap';
|
|
|
|
export function fetchAmapConfig(signal?: AbortSignal) {
|
|
return fetchJson<AmapConfig>(`${BASE}/config`, { signal });
|
|
}
|
|
|
|
export function fetchHydrogenHeatmapMeta(signal?: AbortSignal) {
|
|
return fetchJson<HydrogenHeatmapMeta>(`${BASE}/meta`, { signal });
|
|
}
|
|
|
|
export function fetchHydrogenHeatmapPoints(
|
|
params: { startDate: string; endDate: string; query: string; payer: HydrogenPayer; metric: HydrogenHeatmapMetric },
|
|
signal?: AbortSignal,
|
|
) {
|
|
return fetchJson<HydrogenHeatmapResponse>(`${BASE}/points?${new URLSearchParams(params)}`, { signal });
|
|
}
|
|
|
|
export function fetchNearbyHydrogenStations(
|
|
params: {
|
|
lng: number;
|
|
lat: number;
|
|
startDate: string;
|
|
endDate: string;
|
|
query: string;
|
|
payer: HydrogenPayer;
|
|
metric: HydrogenHeatmapMetric;
|
|
},
|
|
signal?: AbortSignal,
|
|
) {
|
|
const search = new URLSearchParams({
|
|
lng: String(params.lng),
|
|
lat: String(params.lat),
|
|
startDate: params.startDate,
|
|
endDate: params.endDate,
|
|
query: params.query,
|
|
payer: params.payer,
|
|
metric: params.metric,
|
|
radiusKm: '50',
|
|
});
|
|
return fetchJson<HydrogenNearbyResponse>(`${BASE}/nearby?${search}`, { signal });
|
|
}
|