feat(#16): Appraisal page
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import {marketApi} from '@/mammon';
|
||||
import {getMarketTypes} from '../type';
|
||||
|
||||
export type AppraisalItemValue = {
|
||||
typeID: number;
|
||||
name: string;
|
||||
quantity: number;
|
||||
buy: number;
|
||||
sell: number;
|
||||
buyUnit: number;
|
||||
sellUnit: number;
|
||||
};
|
||||
|
||||
export const appraise = async (raw?: string, locationId?: number): Promise<AppraisalItemValue[]> => {
|
||||
if (!raw?.trim()) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const results = await marketApi.pastePrices(raw, locationId).then(r => r.data);
|
||||
const names = await getMarketTypes(results.map(r => r.marketTypeId))
|
||||
.then(types => new Map(types.map(t => [t.id, t.name])));
|
||||
|
||||
return results.map(r => ({
|
||||
typeID: r.marketTypeId,
|
||||
name: names.get(r.marketTypeId) ?? '',
|
||||
quantity: r.quantity,
|
||||
buy: r.buy,
|
||||
sell: r.sell,
|
||||
buyUnit: r.quantity ? r.buy / r.quantity : 0,
|
||||
sellUnit: r.quantity ? r.sell / r.quantity : 0,
|
||||
}));
|
||||
};
|
||||
Reference in New Issue
Block a user