const app = require('../app');
const { Client } = require('pg');
const fs = require('fs');

if (process.env.NODE_ENV !== 'production' || process.env.NODE_ENV !== 'testing') {
  require('dotenv').config();
}

const client = new Client();
client.connect();

async function executeQuery(query, values = []) {
    const result = await client.query({
        rowMode: 'array',
        text: query,
        values: values
    });
    return result.rows;
}

async function Initialize() {
    console.log("Initializing database...")
    const sql = fs.readFileSync('database/init_database.sql').toString();
    await executeQuery(sql);
    console.log("Database initialized.")
}




async function checkForDatabaseInitialization() {
    const query = `SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'scores'`;
    let result = await executeQuery(query);
    
    const scoresSchemaExists = result.length !== 0;

    if(!scoresSchemaExists) {
        Initialize();
    }
}
checkForDatabaseInitialization();





exports.executeQuery = executeQuery;