Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | import { logger } from "server/utils/logger";
import { saveProgramItems } from "server/features/program-item/programItemRepository";
import { db } from "server/db/mongodb";
import {
createAdminUser,
createHelpUser,
createTestUsers,
} from "server/test/test-data-generation/generators/createUsers";
import { cleanupDatabase } from "server/utils/cleanupDatabase";
import { addSignupQuestions } from "server/features/program-item/utils/addSignupQuestions";
import { findSettings } from "server/features/settings/settingsRepository";
import { getProgramItemsForEvent } from "server/features/program-item/programItemService";
const ADMIN_PASSWORD = "";
const HELP_PASSWORD = "";
const CREATE_TEST_USERS = false;
const UPDATE_PROGRAM_ITEMS = true;
const initializeDatabase = async (): Promise<void> => {
if (process.env.NODE_ENV === "production") {
// eslint-disable-next-line no-restricted-syntax -- Data generation script
throw new Error("Data creation not allowed in production");
}
await db.connectToDb();
logger.info("Clean all data");
await cleanupDatabase();
logger.info("Create admin user");
await createAdminUser(ADMIN_PASSWORD);
logger.info("Create helper user");
await createHelpUser(HELP_PASSWORD);
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
if (CREATE_TEST_USERS) {
logger.info("Create test users");
await createTestUsers({ userCount: 5 });
}
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
if (UPDATE_PROGRAM_ITEMS) {
logger.info("Download program items from Kompassi");
const programItemsResult = await getProgramItemsForEvent();
if (!programItemsResult.ok) {
// eslint-disable-next-line no-restricted-syntax -- Data generation script
throw new Error("Unable to load Kompassi program items");
}
await saveProgramItems(programItemsResult.value);
}
// This will create default settings
await findSettings();
await addSignupQuestions();
await db.gracefulExit();
};
try {
await initializeDatabase();
} catch (error: unknown) {
logger.error(new Error("Script initializeDatabase failed", { cause: error }));
}
|