33 lines
1 KiB
JavaScript
33 lines
1 KiB
JavaScript
|
|
/**
|
||
|
|
* @param {{ name?: string, game?: string, set_name?: string, setName?: string }} card
|
||
|
|
* @returns {string}
|
||
|
|
*/
|
||
|
|
export function buildTcgplayerUrl(card) {
|
||
|
|
const name = card.name || '';
|
||
|
|
const game = (card.game || 'mtg').toLowerCase();
|
||
|
|
return `https://www.tcgplayer.com/search/${game}/product?productName=${encodeURIComponent(name)}`;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param {{ name?: string, game?: string, set_name?: string, setName?: string }} card
|
||
|
|
* @returns {string}
|
||
|
|
*/
|
||
|
|
export function buildEbayUrl(card) {
|
||
|
|
const name = card.name || '';
|
||
|
|
const game = card.game || '';
|
||
|
|
const setName = card.set_name || card.setName || '';
|
||
|
|
const query = [name, setName, game].filter(Boolean).join(' ');
|
||
|
|
return `https://www.ebay.com/sch/i.html?_nkw=${encodeURIComponent(query)}`;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param {{ name?: string, game?: string, set_name?: string, setName?: string }} card
|
||
|
|
* @returns {{ tcgplayer: string, ebay: string }}
|
||
|
|
*/
|
||
|
|
export function buildOutboundLinks(card) {
|
||
|
|
return {
|
||
|
|
tcgplayer: buildTcgplayerUrl(card),
|
||
|
|
ebay: buildEbayUrl(card),
|
||
|
|
};
|
||
|
|
}
|