mirror of
https://github.com/jcreek/LivingDexTracker.git
synced 2026-07-13 11:03:44 +00:00
feat(*): Update seeding logic to handle new fields and record the last modified date
This commit is contained in:
@@ -2,9 +2,21 @@ import { json } from '@sveltejs/kit';
|
||||
import { dbConnect, dbDisconnect } from '$lib/utils/db';
|
||||
import PokedexEntryModel from '$lib/models/PokedexEntry';
|
||||
import PokedexEntryRepository from '$lib/repositories/PokedexEntryRepository';
|
||||
import dex from '$lib/helpers/dex.json';
|
||||
import PokedexMetadataModel from '$lib/models/PokedexMetadata';
|
||||
import dex from '$lib/helpers/pokedex.json';
|
||||
|
||||
// seed pokedex data
|
||||
// Function to update the lastModified field in the metadata collection
|
||||
const updateLastModified = async () => {
|
||||
const metadata = await PokedexMetadataModel.findOne();
|
||||
if (metadata) {
|
||||
metadata.lastModified = new Date();
|
||||
await metadata.save();
|
||||
} else {
|
||||
await PokedexMetadataModel.create({ lastModified: new Date() });
|
||||
}
|
||||
};
|
||||
|
||||
// Seed Pokedex data
|
||||
export const GET = async () => {
|
||||
// Immediately return if not in development to prevent seeding extra data
|
||||
return;
|
||||
@@ -13,26 +25,13 @@ export const GET = async () => {
|
||||
.then(async () => {
|
||||
const repo = new PokedexEntryRepository();
|
||||
|
||||
dex.forEach(async (pokemon) => {
|
||||
const pokemonModel = new PokedexEntryModel({
|
||||
order: pokemon.dexOrder,
|
||||
boxPlacement: {
|
||||
box: pokemon.boxNumber,
|
||||
row: pokemon.rowNumber,
|
||||
column: pokemon.columnNumber
|
||||
},
|
||||
pokedexNumber: pokemon.pokedexNumber,
|
||||
pokemon: pokemon.name,
|
||||
form: pokemon.form,
|
||||
generation: pokemon.generation,
|
||||
originGame: pokemon.originGame,
|
||||
alternativeOrigin: pokemon.altOriginGame,
|
||||
howToObtain: pokemon.notesToObtain
|
||||
});
|
||||
|
||||
await repo.create(pokemonModel);
|
||||
console.log(`Seeded ${pokemon.dexOrder}`);
|
||||
dex.forEach(async (pokemon: PokedexEntryModel) => {
|
||||
await repo.create(pokemon);
|
||||
console.log(`Seeded ${pokemon.pokedexNumber} ${pokemon.pokemon} ${pokemon.form}`);
|
||||
});
|
||||
|
||||
// Update the lastModified field after seeding
|
||||
await updateLastModified();
|
||||
})
|
||||
.finally(() => dbDisconnect());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user