mirror of
https://github.com/calli-eve/eve-pi.git
synced 2026-02-11 18:28:49 +01:00
refactor main view to table and add production, import and export information per planet
This commit is contained in:
112
src/eve-praisal.ts
Normal file
112
src/eve-praisal.ts
Normal file
@@ -0,0 +1,112 @@
|
||||
import { PI_TYPES_ARRAY } from "./const";
|
||||
|
||||
export interface Totals {
|
||||
buy: number;
|
||||
sell: number;
|
||||
volume: number;
|
||||
}
|
||||
|
||||
export interface All {
|
||||
avg: number;
|
||||
max: number;
|
||||
median: number;
|
||||
min: number;
|
||||
percentile: number;
|
||||
stddev: number;
|
||||
volume: number;
|
||||
order_count: number;
|
||||
}
|
||||
|
||||
export interface Buy {
|
||||
avg: number;
|
||||
max: number;
|
||||
median: number;
|
||||
min: number;
|
||||
percentile: number;
|
||||
stddev: number;
|
||||
volume: number;
|
||||
order_count: number;
|
||||
}
|
||||
|
||||
export interface Sell {
|
||||
avg: number;
|
||||
max: number;
|
||||
median: number;
|
||||
min: number;
|
||||
percentile: number;
|
||||
stddev: number;
|
||||
volume: number;
|
||||
order_count: number;
|
||||
}
|
||||
|
||||
export interface Prices {
|
||||
all: All;
|
||||
buy: Buy;
|
||||
sell: Sell;
|
||||
updated: string;
|
||||
strategy: string;
|
||||
}
|
||||
|
||||
export interface Meta {}
|
||||
|
||||
export interface Item {
|
||||
name: string;
|
||||
typeID: number;
|
||||
typeName: string;
|
||||
typeVolume: number;
|
||||
quantity: number;
|
||||
prices: Prices;
|
||||
meta: Meta;
|
||||
}
|
||||
|
||||
export interface Appraisal {
|
||||
created: number;
|
||||
kind: string;
|
||||
market_name: string;
|
||||
totals: Totals;
|
||||
items: Item[];
|
||||
raw: string;
|
||||
unparsed?: any;
|
||||
private: boolean;
|
||||
live: boolean;
|
||||
}
|
||||
|
||||
export interface EvePraisalResult {
|
||||
appraisal: Appraisal;
|
||||
}
|
||||
|
||||
export interface EvePraisalRequest {
|
||||
items: { amount: number; typeId: number }[];
|
||||
}
|
||||
|
||||
const PRAISAL_URL =
|
||||
"https://evepraisal.com/appraisal/structured.json?persist=no";
|
||||
|
||||
export const getPraisal = async (
|
||||
items: { quantity: number; type_id: number }[]
|
||||
): Promise<EvePraisalResult | undefined> => {
|
||||
const praisalRequest = {
|
||||
market_name: "jita",
|
||||
items,
|
||||
};
|
||||
|
||||
return fetch(PRAISAL_URL, {
|
||||
method: "POST",
|
||||
body: JSON.stringify(praisalRequest),
|
||||
headers: {
|
||||
"User-Agent": "EVE-PI https://github.com/calli-eve/eve-pi",
|
||||
},
|
||||
})
|
||||
.then((res) => res.json())
|
||||
.catch(() => console.log("Appraisal failed"));
|
||||
};
|
||||
|
||||
export const fetchAllPrices = async (): Promise<EvePraisalResult> => {
|
||||
const allPI = PI_TYPES_ARRAY.map((t) => {
|
||||
return { quantity: 1, type_id: t.type_id };
|
||||
});
|
||||
return await fetch("api/praisal", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(allPI),
|
||||
}).then((res) => res.json());
|
||||
};
|
||||
Reference in New Issue
Block a user