boredgame/src/lib/utils/gameMapper.ts

61 lines
1.4 KiB
TypeScript

import type { GameType, SavedGameType } from '$lib/types';
import kebabCase from 'just-kebab-case';
import type { Games } from '$db/schema';
export function convertToSavedGame(game: GameType | SavedGameType): SavedGameType {
return {
id: game.id,
name: game.name,
thumb_url: game.thumb_url,
players: game.players,
playtime: game.playtime,
searchTerms: `${game.name.toLowerCase()}`,
};
}
export function mapSavedGameToGame(game: SavedGameType): GameType {
const { id, name, thumb_url, players, playtime } = game;
console.log({ id, name, thumb_url, players, playtime });
return {
id,
handle: '',
name,
url: '',
edit_url: '',
thumb_url,
image_url: '',
price: 0,
price_ca: 0,
price_uk: 0,
price_au: 0,
msrp: 0,
year_published: new Date().getFullYear(),
min_players: 0,
max_players: 0,
min_playtime: 0,
max_playtime: 0,
min_age: 0,
description: '',
description_preview: '',
players,
playtime,
};
}
export function mapAPIGameToBoredGame(game: GameType): Games {
// TODO: Fix types
return {
name: game.name,
slug: kebabCase(game.name),
thumb_url: game.thumbnail,
image_url: game.image,
year_published: game.year_published,
min_players: game.min_players,
max_players: game.max_players,
min_playtime: game.min_playtime,
max_playtime: game.max_playtime,
min_age: game.min_age,
description: game.description,
};
}